(************************************************************************) (* * The Rocq Prover / The Rocq Development Team *) (* v * Copyright INRIA, CNRS and contributors *) (* <O___,, * (see version control and CREDITS file for authors & dates) *) (* \VV/ **************************************************************) (* // * This file is distributed under the terms of the *) (* * GNU Lesser General Public License Version 2.1 *) (* * (see LICENSE file for the text of the license) *) (************************************************************************)
(* Each computation has a unique id that is inherited by each offspring
* computation (chain, split, map...). Joined computations lose it. *)
module UUID : sig type t val invalid : t
val compare : t -> t -> int val equal : t -> t -> bool end
type'a computation type'a value = [ `Val of 'a | `Exn of Exninfo.iexn ]
type fix_exn = Stateid.exn_info option
(* Build a computation, no snapshot of the global state is taken. If you need tograbacopyofthestatestartwithfrom_here()andthenchain. fix_exnisusedtoenrichanyexceptionraised byforcingthecomputationsoranycomputationthatischainedafter it.ItisusedbySTMtoattacherrorstotheircorrespondingstates,
and to communicate to the code catching the exception a valid state id. *) val create : fix_exn:fix_exn -> (unit -> 'a) -> 'a computation
(* Usually from_val is used to create "fake" futures, to use the same API
as if a real asynchronous computations was there. *) val from_val : 'a -> 'a computation
(* Run remotely, returns the function to assign. Ifnotblocking(thedefault)itraisesNotReadyifforcedbeforethe
delegate assigns it. *) type'a assignment = [ `Val of 'a | `Exn of Exninfo.iexn | `Comp of (unit -> 'a)] val create_delegate :
?blocking:bool -> name:string ->
fix_exn -> 'a computation * ('a assignment -> unit)
(* Given a computation that is_exn, replace it by another one *) val replace : 'a computation -> 'a computation -> unit
(* Inspect a computation *) val is_over : 'a computation -> bool val is_exn : 'a computation -> bool val peek_val : 'a computation -> 'a option val uuid : 'a computation -> UUID.t
(* [chain c f] chains computation [c] with [f]. *[chain]iseager,thatistosay,itwon'tsuspendthenewcomputation *iftheoldoneis_over(ExnorVal).
*) val chain : 'a computation -> ('a -> 'b) -> 'b computation
(* Forcing a computation *) val force : 'a computation -> 'a val compute : 'a computation -> 'a value
(** Debug: print a computation given an inner printing function. *) valprint : ('a -> Pp.t) -> 'a computation -> Pp.t
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.8 Sekunden
(vorverarbeitet am 2026-06-09)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.