macro_rules! trait_alias {
(
$(#[$attributes:meta])*
$visibility:vis $name:ident = $base1:ident $(+ $base2:ident)*
$({ $($body:item)* })?
) => {
$(#[$attributes])*
$visibility trait $name: $base1 $(+ $base2)* { $($($body)*)* }
impl<T: $base1 $(+ $base2)*> $name for T { }
};
}