[][src]Macro monadic::wrt_mdo

macro_rules! wrt_mdo {
    (lift $nested_monad:expr                ) => { ... };
    (pure $e:expr                ) => { ... };
    (guard $boolean:expr ; $($rest:tt)*) => { ... };
    (_ <- tell_str $str:literal ; $($rest:tt)* ) => { ... };
    (_ <- tell_array $ar:expr ; $($rest:tt)* ) => { ... };
    (_ <- tell_vec $e:expr ; $($rest:tt)* ) => { ... };
    (_ <- tell_string $e:expr ; $($rest:tt)* ) => { ... };
    (_ <- $monad:expr ; $($rest:tt)* ) => { ... };
    (let $v:ident = $e:expr ; $($rest:tt)* ) => { ... };
    ($v:ident <- lift_iter $iterator:expr ; $($rest:tt)* ) => { ... };
    (& $v:ident <- lift $nested_monad:expr ; $($rest:tt)* ) => { ... };
    ($v:ident <- lift $nested_monad:expr ; $($rest:tt)* ) => { ... };
    ($v:ident <- $monad:expr ; $($rest:tt)* ) => { ... };
    ($monad:expr                            ) => { ... };
}

macro for a WriterT<M, W = String> monad transformer holding a pair (M, W) where M: MPlus + FromIterator, W: Monoid; It uses the type alias Log in type annotations