# Functor Deriving_monad.MonadDefault

    module MonadDefault: functor (M : sig
    type +'a m

    val return : 'a -> 'a m
    val fail : string -> 'a m
    val (>>=) : 'a m ->
           ('a -> 'b m) -> 'b mend) -> Monad  with type +'a m = 'a M.m

Parameters:

`M` | : | `sig type +'a m val return : 'a -> 'a m val fail : string -> 'a m val ( >>= ) : 'a m -> ('a -> 'b m) -> 'b m end`

    type +'a m

    val return : 'a -> 'a m

    val fail : string -> 'a m

    val (>>=) : 'a m ->
           ('a -> 'b m) -> 'b m

    val (>>) : 'a m ->
           'b m -> 'b m