Macro comprehension
Source macro_rules! comprehension {
($it:expr; @$type:ty) => { ... };
($it:expr) => { ... };
($it:expr; @$type:ty; $p:pat => $e:expr) => { ... };
($it:expr; $p:pat => $($t:tt)*) => { ... };
($it:expr; $p:pat, $($t:tt)*) => { ... };
($it:expr; @$type:ty; $p:pat => $e:expr) => { ... };
($it:expr; @$type:ty; $p:pat, $b:expr) => { ... };
($it:expr; @$type:ty; $p:pat => $e:expr, $b:expr) => { ... };
($it:expr; @$type:ty; $p:pat => $e:expr, $b1:expr, $b2:expr) => { ... };
($it:expr; @$type:ty; $p:pat => $e:expr, $b1:expr, $b2:expr, $($t:tt)*) => { ... };
}