Module Flambda2_identifiers
module Apply_cont_rewrite_id : sig ... endmodule Code_id : sig ... endmodule Code_id_or_name : sig ... endmodule Code_id_or_symbol : sig ... endmodule Coercion0 : sig ... endDefines coercions and their basic operations. For us, a coercion is a compile-time function on simple expressions that serves to add information to a type. A coercion must:
module Continuation : sig ... endThe names of continuations.
module Continuation_callsite_map : sig ... endmodule Flambda_debug_uid : sig ... endAugmented version of Lambda.debug_uid that can track variables forming parts of unboxed products.
module Function_slot : sig ... endA label, unique across the whole program, that identifies a function within a set of closures. In essence these function slots describe the semantics of a particular piece of code when it is executed in the context of a particular closure.
module Int_ids : sig ... endThe underlying implementation for Variable, Symbol, Name, Reg_width_const, Simple, Code_id and Code_id_or_symbol. These values are all represented as integers.
module Name : sig ... endThe sum type holding a Variable or a Symbol. The injection functions into the sum type are the identity.
module Named_rewrite_id : sig ... endmodule Rec_info_expr0 : sig ... endmodule Reg_width_const : sig ... endConstants that fit in registers on the target machine.
module Slot : sig ... endmodule Symbol : sig ... endA symbol identifies a piece of statically-allocated data. The linkage name must be unique across the whole program.
module Value_slot : sig ... endA label, unique across the whole program, that identifies the value of a captured variable in a set of closures. Value slots are assigned integer offsets inside Closure_tag blocks, where the relevant captured value will be stored at runtime, by the Slot_offsets module.
module Variable : sig ... end