macro_rules! __inner_helper {
($r#gen:tt { $($full_gen:tt)* } { $($params:tt)* } binder $($rest:tt)*) => { ... };
(
{ $($r#gen:tt)* } { $($full_gen:tt)* } { $($params:tt)* } $i:ident
$($rest:tt)*
) => { ... };
($r#gen:tt $full_gen:tt $params:tt $(,)?) => { ... };
}