macro_rules! rpn {
[() -> ()] => { ... };
[() -> ($stack:tt)] => { ... };
[(+ $($tail:tt)*) -> ($stack_first:tt $stack_second:tt $($stack:tt)*)] => { ... };
[(- $($tail:tt)*) -> ($stack_first:tt $stack_second:tt $($stack:tt)*)] => { ... };
[(* $($tail:tt)*) -> ($stack_first:tt $stack_second:tt $($stack:tt)*)] => { ... };
[(/ $($tail:tt)*) -> ($stack_first:tt $stack_second:tt $($stack:tt)*)] => { ... };
[($head:tt $($tail:tt)*) -> ($($stack:tt)*)] => { ... };
[$first:tt $second:tt $($tail:tt)*] => { ... };
}