macro_rules! select_chan {
($select:ident, default => $default:expr, $(
$chan:ident.$meth:ident($($send:expr)*)
$(-> $name:pat)* => $code:expr,
)+) => { ... };
($select:ident, default => $default:expr, $(
$chan:ident.$meth:ident($($send:expr)*)
$(-> $name:pat)* => $code:expr
),+) => { ... };
($select:ident, $(
$chan:ident.$meth:ident($($send:expr)*)
$(-> $name:pat)* => $code:expr,
)+) => { ... };
($select:ident, $(
$chan:ident.$meth:ident($($send:expr)*)
$(-> $name:pat)* => $code:expr
),+) => { ... };
(default => $default:expr) => { ... };
(default => $default:expr,) => { ... };
($select:ident, default => $default:expr) => { ... };
($select:ident, default => $default:expr,) => { ... };
($select:ident) => { ... };
() => { ... };
($($tt:tt)*) => { ... };
}