Fun.Make2include Monad2 with type ('a, 'e) t := ('a, 'e) T2(M).tsequence xs computes a sequence of computations xs in the left to right order.
forever xs creates a computationt that never returns.
module Fn : sig ... endVarious function combinators lifted into the Kleisli category.
module Pair : sig ... endThe pair interface lifted into the monad.
module Triple : sig ... endThe triple interface lifted into a monad.
module Lift : sig ... endLifts functions into the monad.
module Exn : sig ... endInteracting between monads and language exceptions
module Collection : sig ... endLifts collection interface into the monad.
module List : Collection.S with type 'a t := 'a listThe Monad.Collection.S2 interface for lists
module Seq : Collection.S with type 'a t := 'a Core_kernel.Sequence.tThe Monad.Collection.S2 interface for sequences
include Syntax.S2 with type ('a, 'e) t := ('a, 'e) T2(M).tf >=> g is fun x -> f x >>= g
val (!!) : 'a -> ('a, 'e) T2(M).t!!x is return x
!$$f is Lift.binary f
val (!$$$) :
('a -> 'b -> 'c -> 'd) ->
('a, 'e) T2(M).t ->
('b, 'e) T2(M).t ->
('c, 'e) T2(M).t ->
('d, 'e) T2(M).t!$$$f is Lift.ternary f
include Syntax.Let.S2 with type ('a, 'e) t := ('a, 'e) T2(M).tlet* r = f x in b is f x >>= fun r -> b
let+ r = f x in b is f x >>| fun r -> b
include Core_kernel.Monad.S2 with type ('a, 'e) t := ('a, 'e) T2(M).tmodule Let_syntax : sig ... endmodule Monad_infix : sig ... endval return : 'a -> ('a, 'b) T2(M).tmodule Let : Syntax.Let.S2 with type ('a, 'e) t := ('a, 'e) T2(M).tMonadic Binding Operators.
Monadic operators, see Monad.Syntax.S2 for more.