check

Macro check 

Source
macro_rules! check {
    ( [] $cases:tt ) => { ... };
    ( [$f:expr $(, $($fns:tt)*)?] $cases:tt ) => { ... };
    ( @1 $f:expr, {}) => { ... };
    ( @1 $f:expr, { $args:tt => FAIL $(, $($ts:tt)* )? } ) => { ... };
    ( @1 $f:expr, { $args:tt => $out:expr $(, $($ts:tt)* )? } ) => { ... };
    ( @2 $f:expr, ($($args:tt)*) => FAIL ) => { ... };
    ( @2 $f:expr, ($($args:tt)*) => $out:expr ) => { ... };
}