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
end) -> Monad ^ÀnEE`@@@@°ÀpEE^Àq
module Monad_option: MonadPlus vEEIÀwEEb@°ÀyEEIÀz
module Monad_list: MonadPlus ‘@À±@À£ �!m°ÀŒFcxÀ�
module IO: sig .. end
module type MonadUtilsSig = sig .. end
module MonadUtils: 
functor (M : Monad) -> MonadUtilsSig (@@@°À¶NÀ·N
module type MonadPlusUtilsSig = sig .. end
module MonadPlusUtils: 
functor (M : MonadPlus) -> MonadPlusUtilsSig Ob@  À�!a°ÀêSO]
module MonadPlusUtils_option: MonadPlusUtilsSig ðSOXÀñSOb@  �Р&return°À
module MonadPlusUtils_list: MonadPlusUtilsSig c{@@@À£ �!m°À	Tc‚À
Tc
module Monad_IO: MonadUtilsSig @@@@°ÀTcÀTc
module type Monad_state_type = sig .. end
module Monad_state: 
functor (S : sig
type state 
end) -> Monad_state_type ¤@@@@°ÀDU„¢ÀEU„