gluon 0.13.1

A static, type inferred programming language for application embedding
Documentation
//@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 }