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