Monad.Lazy
The Lazy monad.
The lazy monad implements a call-by-need evaluation strategy. The computation is delayed until it is run. It uses OCaml built in lazy computations to implement memoization.
module type S = sig ... end
module type S2 = sig ... end
include S
with type 'a t = 'a Core_kernel.Lazy.t
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.