functor (X : sig type t end) ->
sig
type 'a t = X.t -> 'a
val return : 'a -> 'a CCFun.Monad.t
val ( >|= ) : 'a CCFun.Monad.t -> ('a -> 'b) -> 'b CCFun.Monad.t
val ( >>= ) :
'a CCFun.Monad.t -> ('a -> 'b CCFun.Monad.t) -> 'b CCFun.Monad.t
end