macro_rules! invariant_functor { ($name:ident<$( $t:tt ),+>) => { ... }; ($name:ident<$( $t:tt ),+>, $ct:tt $(+ $dt:tt )*) => { ... }; }
Macro to implement Invariant for types implementing Functor.