macro_rules! signature_by_value {
($a1:expr , $($arg:expr),* => $_return:expr) => { ... };
( => $_return:expr) => { ... };
( $a1:expr => $_return:expr) => { ... };
( => ) => { ... };
( $a1:expr => ) => { ... };
($a1:expr , $($arg:expr),* => ) => { ... };
}