Module Sarek_execute.Ir_memo

val hashes : int Stdlib.Atomic.t
val hash_count : unit -> int

Every hash of an IR by the launch-path tables; a test hook.

module Physical : sig ... end

Physical identity of an IR, for Ephemeron.K1.Make.

module Table : sig ... end
type 'a key = 'a Stdlib.Type.Id.t

A typed slot. Each owner makes its keys once (new_key).

val new_key : unit -> 'a key
type binding =
  1. | Binding : 'a key * 'a -> binding
type facts = {
  1. slots : binding list Stdlib.Atomic.t;
}

The facts recorded for one IR.

val table : facts Table.t
val lock : Stdlib.Mutex.t
val last : (Sarek_ir_types.kernel, facts) Stdlib.Ephemeron.K1.t option Stdlib.Domain.DLS.key

The record of ir, created empty on first use.

val find : facts -> 'a key -> 'a option

The value in slot key of facts, if any.

val set : facts -> 'a key -> 'a -> unit

Put v in slot key of facts, replacing any value there.