Functors to generate specialised monadic variants of the Stdlib.Seq.t type along with all the traversor and transformer functions.
Monad functors over Stdlib Sequences
Stdlib.Seq provides an abstraction for delayed lists. One limitation of the Stdlib.Seq module is that its type cannot accommodate monads. For example, considering a cooperative I/O monad in the style of Async or Lwt, using the type 'a io to denote promises of 'a, one cannot write
val map_io : ('a -> 'b io) -> 'a Seq.t -> 'b Seq.t
That's because the Seq.t type includes an arrow (->) that is outside of the monad, as per the type declaration.
This here module exposes a Make functor which produces new Seq-like modules with a baked-in monad.