macro_rules! punc { ( λ $( [ $x:ident . $($y:tt)* ] )* ) => { ... }; ( λ $( [ $x:ident : $t:ident . $($y:tt)* ] )* ) => { ... }; (; $i:tt $($j:tt)+ ) => { ... }; ({ $t:expr }) => { ... }; ({ $t:expr } $($s:tt)+ ) => { ... }; ([ $($t:tt)+ ]) => { ... }; ([ $($t:tt)+ ] $($s:tt)+ ) => { ... }; ( $i:tt : $($t:tt)* ) => { ... }; ( $i:tt $( ( $($j:tt)* ) )+ ) => { ... }; ( $i:ident : $($t:tt)* ) => { ... }; ( $i:ident $($j:tt)+ ) => { ... }; ( @ $i:tt $($j:tt)+ ) => { ... }; ( % $i:tt $($j:tt)+ ) => { ... }; ( . $i:tt $($j:tt)+ ) => { ... }; ( = $($i:tt)+ ) => { ... }; ( $i:literal ) => { ... }; ( $i:ident ) => { ... }; ( @ $i:tt ) => { ... }; ( % $i:tt ) => { ... }; ( . $i:tt ) => { ... }; ( $i:ident $($j:tt)+ ) => { ... }; (( $($i:tt)+ )) => { ... }; }