macro_rules! use_memo {
    ( <$t:ty> $(move)? || $e:expr ) => { ... };
    ( <$t:ty> $(move)? | $($dep:ident),+ $(,)? | $e:expr ) => { ... };
    ( $(move)? || $e:expr ) => { ... };
    ( $(move)? | $($dep:ident),+ $(,)? | $e:expr ) => { ... };
}