immutable
macro_rules! list { [] => { ... }; [$ele:expr] => { ... }; [$ele:expr, $($tail:expr),*] => { ... }; }