Monad.Fun
The 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 ... end
module type S2 = sig ... end
include S with type 'a t = 'a thunk and type 'a m = 'a and type 'a e = 'a
include Monad with type 'a t := 'a t
sequence xs
computes a sequence of computations xs
in the left to right order.
module Fn : sig ... end
Various function combinators lifted into the Kleisli category.
module Pair : sig ... end
The pair interface lifted into the monad.
module Triple : sig ... end
The triple interface lifted into a monad.
module Lift : sig ... end
Lifts functions into the monad.
module Exn : sig ... end
Interacting between monads and language exceptions
module Collection : sig ... end
Lifts collection interface into the monad.
module List : Collection.S with type 'a t := 'a list
The Monad.Collection.S interface for lists
module Seq : Collection.S with type 'a t := 'a Core_kernel.Sequence.t
The Monad.Collection.S interface for sequences
include Syntax.Let.S with type 'a t := 'a t
include Core_kernel.Monad.S with type 'a t := 'a t
module Monad_infix : sig ... end
val return : 'a -> 'a t
module Let_syntax : sig ... end
module Let : Syntax.Let.S with type 'a t := 'a t
Monadic operators, see Monad.Syntax.S for more.
Monadic operators, see Monad.Syntax.S for more.