macro_rules! fmt_option_map {
    ($ex: expr, $f: expr $(,)*) => { ... };
    ($ex: expr $(,)*, else $els: expr, $f: expr $(,)*) => { ... };
    (pre $prefix: expr, $ex: expr, $f: expr $(,)*) => { ... };
    ($ex: expr, post $postfix: expr, $f: expr $(,)*) => { ... };
    ($prefix: expr, $ex: expr, $postfix: expr, $f: expr $(,)*) => { ... };
}