type 'a t = 'a Base.Lazy.t
include Bin_prot.Binable.S1 with type 'a t := 'a t
val bin_shape_t : Bin_prot.Shape.t -> Bin_prot.Shape.tval bin_size_t : ('a, 'a t) Bin_prot.Size.sizer1val bin_write_t : ('a, 'a t) Bin_prot.Write.writer1val bin_read_t : ('a, 'a t) Bin_prot.Read.reader1val __bin_read_t__ : ('a, int -> 'a t) Bin_prot.Read.reader1val bin_writer_t : ('a, 'a t) Bin_prot.Type_class.S1.writerval bin_reader_t : ('a, 'a t) Bin_prot.Type_class.S1.readerval bin_t : ('a, 'a t) Bin_prot.Type_class.S1.t
val compare : ('a -> 'a -> Base.Int.t) -> 'a t -> 'a t -> Base.Int.tval hash_fold_t : (Base.Hash.state -> 'a -> Base.Hash.state) -> Base.Hash.state -> 'a t -> Base.Hash.state
include Ppx_sexp_conv_lib.Sexpable.S1 with type 'a t := 'a t
val t_of_sexp : (Sexplib0.Sexp.t -> 'a) -> Sexplib0.Sexp.t -> 'a tval sexp_of_t : ('a -> Sexplib0.Sexp.t) -> 'a t -> Sexplib0.Sexp.t
val t_sexp_grammar : Ppx_sexp_conv_lib.Sexp.Private.Raw_grammar.t
include Typerep_lib.Typerepable.S1 with type 'a t := 'a t
val typerep_of_t : 'a Typerep_lib.Std_internal.Typerep.t -> 'a t Typerep_lib.Std_internal.Typerep.tval typename_of_t : 'a Typerep_lib.Typename.t -> 'a t Typerep_lib.Typename.t
include module type of Base.Lazy with type 'a t := 'a t
val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> intval hash_fold_t : (Base.Hash.state -> 'a -> Base.Hash.state) -> Base.Hash.state -> 'a t -> Base.Hash.state
include Base.Sexpable.S1 with type 'a t := 'a t
val t_of_sexp : (Sexplib0.Sexp.t -> 'a) -> Sexplib0.Sexp.t -> 'a tval sexp_of_t : ('a -> Sexplib0.Sexp.t) -> 'a t -> Sexplib0.Sexp.t
include Base.Monad.S with type 'a t := 'a t
module Monad_infix : sig ... endval return : 'a -> 'a treturn vreturns the (trivial) computation that returns v.
module Let_syntax : sig ... endval force : 'a t -> 'aforce xforces the suspensionxand returns its result. Ifxhas already been forced,Lazy.force xreturns the same value again without recomputing it. If it raised an exception, the same exception is raised again. RaiseUndefinedif the forcing ofxtries to forcexitself recursively.
val force_val : 'a t -> 'aLike
forceexcept thatforce_val xdoes not use an exception handler, so it may be more efficient. However, if the computation ofxraises an exception, it is unspecified whetherforce_val xraises the same exception orUndefined.
val from_fun : (unit -> 'a) -> 'a tfrom_fun fis the same aslazy (f ())but slightly more efficient iffis a variable.from_funshould only be used if the functionfis already defined. In particular it is always less efficient to writefrom_fun (fun () -> expr)thanlazy expr.
val from_val : 'a -> 'a tfrom_val vreturns an already-forced suspension ofv(wherevcan be any expression). Essentially,from_val expris the same aslet var = expr in lazy var.
val is_val : 'a t -> boolis_val xreturnstrueifxhas already been forced and did not raise an exception.
module T_unforcing : sig ... endThis type offers a serialization function
sexp_of_tthat won't force its argument. Instead, it will serialize the'aif it is available, or just use a custom string indicating it is not forced. Note that this is not a round-trippable type, thus the type does not exposeof_sexp. To be used in debug code, while tracking a Heisenbug, etc.
module Stable : sig ... end