Warning: Reason support is experimental. We are looking for beta-tester and contributors.

Module Deriving_monad

module Deriving_monad : sig..end

module type Monad = sig..end
module type MonadPlus = sig..end
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 m
syntax error in wikisyntax
end) ->
  Monadwith type +'a m = 'a M.m

>>

module Monad_option : MonadPluswith type 'a m = 'a option
module Monad_list : MonadPluswith type 'a m = 'a list
module IO : sig..end
module type MonadUtilsSig = sig..end
module MonadUtils : functor (M : Monad) -> 
  MonadUtilsSigwith type 'a m = 'a M.m
module type MonadPlusUtilsSig = sig..end
module MonadPlusUtils : functor (M : MonadPlus) -> 
  MonadPlusUtilsSigwith type 'a m = 'a M.m
module MonadPlusUtils_option : MonadPlusUtilsSigwith type 'a m = 'a Monad_option.m
module MonadPlusUtils_list : MonadPlusUtilsSigwith type 'a m = 'a Monad_list.m
module Monad_IO : MonadUtilsSigwith type 'a m = 'a IO.m
module type Monad_state_type = sig..end
module Monad_state : functor (S : sig      type stateend) -> 
  Monad_state_typewith type state = S.state