macro_rules! simulacrum_tuplefy {
(@as_ty $token:ty) => { ... };
(@as_expr $token:expr) => { ... };
($mode:tt ($($param:tt)*) -> ($($result:tt)*)) => { ... };
(@inner kind () -> ($($result:tt)*)) => { ... };
(@inner name () -> ($($result:tt)*)) => { ... };
(@inner $mode:tt (& self) -> ($($result:tt)*)) => { ... };
(@inner $mode:tt (& mut self) -> ($($result:tt)*)) => { ... };
(@inner $mode:tt (& self, $($tail:tt)*) -> ($($result:tt)*)) => { ... };
(@inner $mode:tt (& mut self, $($tail:tt)*) -> ($($result:tt)*)) => { ... };
(@inner kind ($name:ident: &'static $kind:ty) -> ($($result:tt)*)) => { ... };
(@inner kind ($name:ident: &'static $kind:ty, $($tail:tt)*) -> ($($result:tt)*)) => { ... };
(@inner kind ($name:ident: & $kind:ty) -> ($($result:tt)*)) => { ... };
(@inner kind ($name:ident: & mut $kind:ty) -> ($($result:tt)*)) => { ... };
(@inner kind ($name:ident: & $kind:ty, $($tail:tt)*) -> ($($result:tt)*)) => { ... };
(@inner kind ($name:ident: & mut $kind:ty, $($tail:tt)*) -> ($($result:tt)*)) => { ... };
(@inner kind ($name:ident: $kind:ty, $($tail:tt)*) -> ($($result:tt)*)) => { ... };
(@inner kind ($name:ident: $kind:ty) -> ($($result:tt)*)) => { ... };
(@inner name ($name:ident: $kind:ty, $($tail:tt)*) -> ($($result:tt)*)) => { ... };
(@inner name ($name:ident: $kind:ty) -> ($($result:tt)*)) => { ... };
}