macro_rules! value { ( $($key:ident)? $( [ $tail:tt ] )* as $ty:ty ) => { ... }; ( .. $( [ $tail:tt ] )* as $ty:ty ) => { ... }; }