macro_rules! map {
(__impl $i:expr, $submac:ident!( $($args:tt)* ), $g:expr) => { ... };
($i:expr, $submac:ident!( $($args:tt)* ), $g:expr) => { ... };
($i:expr, $f:expr, $g:expr) => { ... };
}
map!(I -> IResult<I,O>, O -> P) => I -> IResult<I, P>
maps a function on the result of a parser