Module Monads.Std.Monad.List

module List: sig .. end
The List monad.

The list monad denotes a non-deterministic computation, i.e., a computation that can have more than one result or no results at all.

module type S = sig .. end
module type S2 = sig .. end
include Monads.Std.Monad.List.S
module T1 (M : Std.T1) : sig .. end
module Make (M : Std.Monad.Monad) : S  with type 'a m := 'a T1(M).m
             and type 'a t := 'a T1(M).t
             and type 'a e := 'a T1(M).e
Make(M) composes the List monad with M
module T2 (M : Std.T2) : sig .. end
module Make2 (M : Std.Monad.Monad2) : S2  with type ('a,'e) m := ('a,'e) T2(M).m
              and type ('a,'e) t := ('a,'e) T2(M).t
              and type ('a,'e) e := ('a,'e) T2(M).e
Make2(M) composes the List monad with M