macro_rules! hado {
(ret ( $ty:ty ) $expr:expr) => { ... };
(ret $expr:expr) => { ... };
(ign <- $expr:expr; $($rest:tt)*) => { ... };
(mut $ident:ident <- $expr:expr; $($rest:tt)*) => { ... };
($ident:ident <- $expr:expr; $($rest:tt)*) => { ... };
($stmt:stmt; $($rest:tt)*) => { ... };
($expr:expr) => { ... };
}