macro_rules! catch { ($ret_type:ty => try $block:block $(ops $name:ident: $ty: ty $ops_block:block)+) => { ... }; (try $block:block $(ops $name:ident: $ty: ty $ops_block:block)+) => { ... }; }