Module Monads.Std.Monad.Ident

module Ident: Monad  with type 'a t = 'a
The identity monad.

The identity monad represents a computation that has the same semantics as a host language computation. The provided implementation is not derived via some functor but rather manually written to help optimizer to inline the identity monad and actually to provide code that is as efficient as the same code written without a monad.


type 'a t 
val void : 'a t -> unit t
void m computes m and discrards the result.
val sequence : unit t list -> unit t
sequence xs computes a sequence of computations xs in the left to right order.
val forever : 'a t -> 'b t
forever xs creates a computationt that never returns.
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 Sequence.t
The Monad.Collection.S interface for sequences
include Monads.Std.Monad.Syntax.S
include Monad.S
module Syntax: Std.Monad.Syntax.S  with type 'a t := 'a t
Monadic operators, see Monad.Syntax.S for more.