macro_rules! impl_product_transducer {
(@impl $($T:ident)*, $($a:ident)*, $($b:ident)*, $($c:ident)*) => { ... };
(@inc $($T:ident)*, $($a:ident)*, $($b:ident)*, $($c:ident)*, $TT:ident $aa:ident $bb:ident $cc:ident) => { ... };
(@inc $($T:ident)*, $($a:ident)*, $($b:ident)*, $($c:ident)*, $TT:ident $aa:ident $bb:ident $cc:ident $($tt:tt)*) => { ... };
($($tt:tt)*) => { ... };
}