sig
  type 'a monad
  type 'a t
  val foldi :
    'a Deferred_intf.Monad_sequence.t ->
    init:'b ->
    f:(int -> 'b -> 'a -> 'b Deferred_intf.Monad_sequence.monad) ->
    'b Deferred_intf.Monad_sequence.monad
  val fold :
    'a Deferred_intf.Monad_sequence.t ->
    init:'b ->
    f:('b -> 'a -> 'b Deferred_intf.Monad_sequence.monad) ->
    'b Deferred_intf.Monad_sequence.monad
  val init :
    ?how:Deferred_intf.how ->
    int ->
    f:(int -> 'a Deferred_intf.Monad_sequence.monad) ->
    'a Deferred_intf.Monad_sequence.t Deferred_intf.Monad_sequence.monad
  val iter :
    ?how:Deferred_intf.how ->
    'a Deferred_intf.Monad_sequence.t ->
    f:('a -> unit Deferred_intf.Monad_sequence.monad) ->
    unit Deferred_intf.Monad_sequence.monad
  val iteri :
    ?how:Deferred_intf.how ->
    'a Deferred_intf.Monad_sequence.t ->
    f:(int -> 'a -> unit Deferred_intf.Monad_sequence.monad) ->
    unit Deferred_intf.Monad_sequence.monad
  val map :
    ?how:Deferred_intf.how ->
    'a Deferred_intf.Monad_sequence.t ->
    f:('a -> 'b Deferred_intf.Monad_sequence.monad) ->
    'b Deferred_intf.Monad_sequence.t Deferred_intf.Monad_sequence.monad
  val filter :
    ?how:Deferred_intf.how ->
    'a Deferred_intf.Monad_sequence.t ->
    f:('a -> bool Deferred_intf.Monad_sequence.monad) ->
    'a Deferred_intf.Monad_sequence.t Deferred_intf.Monad_sequence.monad
  val filter_map :
    ?how:Deferred_intf.how ->
    'a Deferred_intf.Monad_sequence.t ->
    f:('a -> 'b option Deferred_intf.Monad_sequence.monad) ->
    'b Deferred_intf.Monad_sequence.t Deferred_intf.Monad_sequence.monad
  val all :
    'a Deferred_intf.Monad_sequence.monad Deferred_intf.Monad_sequence.t ->
    'a Deferred_intf.Monad_sequence.t Deferred_intf.Monad_sequence.monad
  val all_unit :
    unit Deferred_intf.Monad_sequence.monad Deferred_intf.Monad_sequence.t ->
    unit Deferred_intf.Monad_sequence.monad
end