Monad.FunThe Function Monad.
The function monad delays the computation until it is actually run. This is not the only monad that has such behavior, i.e., State, Cont, Lazy, and Reader monads are also delayed, but they all have other additional behaviors on top of the delaying the computation. The function monad can be seen as a Reader monad with unit environment, or as a Lazy monad without the memoization.
module type S = sig ... endmodule type S2 = sig ... endinclude S with type 'a t = 'a thunk and type 'a m = 'a and type 'a e = 'ainclude Monad with type 'a t := 'a tsequence xs computes a sequence of computations xs in the left to right order.
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.S interface for lists
module Seq : Collection.S with type 'a t := 'a Core_kernel.Sequence.tThe Monad.Collection.S interface for sequences
include Syntax.Let.S with type 'a t := 'a tinclude Core_kernel.Monad.S with type 'a t := 'a tmodule Monad_infix : sig ... endval return : 'a -> 'a tmodule Let_syntax : sig ... endmodule Let : Syntax.Let.S with type 'a t := 'a tMonadic operators, see Monad.Syntax.S for more.
Monadic operators, see Monad.Syntax.S for more.