macro_rules! fn_compose {
( $arg: expr ) => { ... };
( $arg: expr => $f: ident ) => { ... };
( $arg: expr => $f: ident $( $largs: expr, )* _ $( ,$rargs: expr )* ) => { ... };
( $arg: expr => $f: ident => $( $tokens: tt )* ) => { ... };
( $arg: expr => $f: ident $( $largs: expr, )* _ $( ,$rargs: expr )* => $( $tokens: tt )* ) => { ... };
}