sig
  type ('a, 'e) t
  val bind :
    ('a, 'e) Monad_intf.Basic2.t ->
    ('a -> ('b, 'e) Monad_intf.Basic2.t) -> ('b, 'e) Monad_intf.Basic2.t
  val map :
    [ `Custom of
        ('a, 'e) Monad_intf.Basic2.t ->
        f:('a -> 'b) -> ('b, 'e) Monad_intf.Basic2.t
    | `Define_using_bind ]
  val return : 'a -> ('a, 'b) Monad_intf.Basic2.t
end