`type 'a monad`````
`type 'a t`````
`val foldi : 'a t ‑> init:'b ‑> f:(int ‑> 'b ‑> 'a ‑> 'b monad) ‑> 'b monad`
`val fold : 'a t ‑> init:'b ‑> f:('b ‑> 'a ‑> 'b monad) ‑> 'b monad`
`val find : 'a t ‑> f:('a ‑> bool monad) ‑> 'a option monad`
`val findi : 'a t ‑> f:(int ‑> 'a ‑> bool monad) ‑> (int * 'a) option monad`
`val find_map : 'a t ‑> f:('a ‑> 'b option monad) ‑> 'b option monad`
`val find_mapi : 'a t ‑> f:(int ‑> 'a ‑> 'b option monad) ‑> 'b option monad`
`val exists : 'a t ‑> f:('a ‑> bool monad) ‑> bool monad`
`val existsi : 'a t ‑> f:(int ‑> 'a ‑> bool monad) ‑> bool monad`
`val for_all : 'a t ‑> f:('a ‑> bool monad) ‑> bool monad`
`val for_alli : 'a t ‑> f:(int ‑> 'a ‑> bool monad) ‑> bool monad`
`val all : 'a monad t ‑> 'a t monad`
`val all_unit : unit monad t ‑> unit monad`

### Deferred iterators

In the following, the default `how` is ``Sequential`

`val init : ?⁠how:Async_kernel.Monad_sequence.how ‑> int ‑> f:(int ‑> 'a monad) ‑> 'a t monad`
`val iter : ?⁠how:Async_kernel.Monad_sequence.how ‑> 'a t ‑> f:('a ‑> unit monad) ‑> unit monad`
`val iteri : ?⁠how:Async_kernel.Monad_sequence.how ‑> 'a t ‑> f:(int ‑> 'a ‑> unit monad) ‑> unit monad`
`val map : ?⁠how:Async_kernel.Monad_sequence.how ‑> 'a t ‑> f:('a ‑> 'b monad) ‑> 'b t monad`
`val mapi : ?⁠how:Async_kernel.Monad_sequence.how ‑> 'a t ‑> f:(int ‑> 'a ‑> 'b monad) ‑> 'b t monad`
`val filter : ?⁠how:Async_kernel.Monad_sequence.how ‑> 'a t ‑> f:('a ‑> bool monad) ‑> 'a t monad`
`val filteri : ?⁠how:Async_kernel.Monad_sequence.how ‑> 'a t ‑> f:(int ‑> 'a ‑> bool monad) ‑> 'a t monad`
`val filter_map : ?⁠how:Async_kernel.Monad_sequence.how ‑> 'a t ‑> f:('a ‑> 'b option monad) ‑> 'b t monad`
`val filter_mapi : ?⁠how:Async_kernel.Monad_sequence.how ‑> 'a t ‑> f:(int ‑> 'a ‑> 'b option monad) ‑> 'b t monad`
`val concat_map : ?⁠how:Async_kernel.Monad_sequence.how ‑> 'a t ‑> f:('a ‑> 'b t monad) ‑> 'b t monad`
`val concat_mapi : ?⁠how:Async_kernel.Monad_sequence.how ‑> 'a t ‑> f:(int ‑> 'a ‑> 'b t monad) ‑> 'b t monad`