//@NO-IMPLICIT-PRELUDE
//! Utilities for writing `Monad` transformers
let { Monad } = import! std.prelude
#[implicit]
type Transformer t = {
/* monad : forall m . [Monad m] -> Monad (t m), */
wrap_monad : forall a m . [Monad m] -> m a -> t m a
}
let wrap_monad ?_ ?tr ma : [Monad m] -> [Transformer t] -> m a -> t m a =
tr.wrap_monad ma
{ Transformer, wrap_monad }