//@NO-IMPLICIT-PRELUDE //! Utilities for writing `Monad` transformers let { Monad } = import! std.prelude #[implicit] type Transformer t = { 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 }