Library
Module
Module type
Parameter
Class
Class type
type 'a t = 'a future
include Monads.Std.Monad.S 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 Monads.Std.Monad.Syntax.S with type 'a t := 'a t
val (!!) : 'a -> 'a t
!!x
is return x
!$$$$f
is Lift.quaternary f
include Monads.Std.Monad.Syntax.Let.S with type 'a t := 'a t
include Core_kernel.Monad.S with type 'a t := 'a t
t >>= f
returns a computation that sequences the computations represented by two monad elements. The resulting computation first does t
to yield a value v
, and then runs the computation returned by f v
.
module Monad_infix : sig ... end
module Let_syntax : sig ... end
These are convenient to have in scope when programming with a monad:
module Let : Monads.Std.Monad.Syntax.Let.S with type 'a t := 'a t
Monadic operators, see Monad.Syntax.S for more.
module Syntax : Monads.Std.Monad.Syntax.S with type 'a t := 'a t
Monadic operators, see Monad.Syntax.S for more.
include Core_kernel.Applicative.S with type 'a t := 'a t
val return : 'a -> 'a t
module Applicative_infix : sig ... end
module Variadic : Variadic.S with type 'a arg = 'a t
module Args : sig ... end
create ()
creates a new future. The function returns a pair of the future itself and a promise that can be used to fulfill the future.
val upon : 'a t -> ( 'a -> unit ) -> unit
upon f action
will call action
as soon a future f
occurs.
val is_decided : 'a t -> bool
is_decided f
is true if a future f
is already decided.
val peek : 'a t -> 'a option
peek f
will return Some value
if future f
has already occurred with this value
.
val peek_exn : 'a t -> 'a
peek_exn f
will evaluate to x
iff is_decided f && peek f x = Some x