sig
type ('a, 'd) t
val bind :
('a, 'd) Monad.Basic2.t ->
('a -> ('b, 'd) Monad.Basic2.t) -> ('b, 'd) Monad.Basic2.t
val map :
('a, 'd) Monad.Basic2.t -> f:('a -> 'b) -> ('b, 'd) Monad.Basic2.t
val return : 'a -> ('a, 'b) Monad.Basic2.t
end