Module Jkind.Builtin
val any :
why:Ocaml_typing.Jkind.History.any_creation_reason ->
'd Ocaml_typing.Types.jkindThis jkind is the top of the jkind lattice. All types have jkind any. But we cannot compile run-time manipulations of values of types with jkind any.
val void :
why:Ocaml_typing.Jkind.History.void_creation_reason ->
('l * Ocaml_typing.Allowance.disallowed) Ocaml_typing.Types.jkindValue of types of this jkind are not retained at all at runtime
val value_or_null :
why:Ocaml_typing.Jkind.History.value_or_null_creation_reason ->
'd Ocaml_typing.Types.jkindval value :
why:Ocaml_typing.Jkind.History.value_creation_reason ->
'd Ocaml_typing.Types.jkindThis is the jkind of normal ocaml values
val immutable_data :
why:Ocaml_typing.Jkind.History.value_creation_reason ->
'd Ocaml_typing.Types.jkindThis is suitable for records or variants without mutable fields.
val sync_data :
why:Ocaml_typing.Jkind.History.value_creation_reason ->
'd Ocaml_typing.Types.jkindThis is suitable for records or variants with atomically mutable fields.
val mutable_data :
why:Ocaml_typing.Jkind.History.value_creation_reason ->
'd Ocaml_typing.Types.jkindThis is suitable for records or variants with mutable fields.
val immediate :
why:Ocaml_typing.Jkind.History.immediate_creation_reason ->
('l * Ocaml_typing.Allowance.disallowed) Ocaml_typing.Types.jkindWe know for sure that values of types of this jkind are always immediate
val immediate_or_null :
why:Ocaml_typing.Jkind.History.immediate_or_null_creation_reason ->
'd Ocaml_typing.Types.jkindValues of types of this jkind are either immediate or null pointers
val product :
why:Ocaml_typing.Jkind.History.product_creation_reason ->
(Ocaml_typing.Types.type_expr * Ocaml_typing.Mode.Modality.Const.t) list ->
Ocaml_typing.Jkind.Sort.t Ocaml_typing.Jkind.Layout.t list ->
Ocaml_typing.Types.jkind_lBuild a jkind of unboxed products, from a list of types with their layouts. Errors if zero inputs are given.
Precondition: both input lists are the same length.
This returns an jkind_l simply as a matter of convenience; it can be generalized if need be.
The resulting jkind has quality Best, because all the components of the product are represented in the with-bounds.
val product_of_sorts :
why:Ocaml_typing.Jkind.History.product_creation_reason ->
level:int ->
int ->
Ocaml_typing.Types.jkind_lBuild a jkind of unboxed products, given only an arity. This jkind will not mode-cross (and has kind Not_best accordingly), even though unboxed products generally should. This is useful when creating an initial jkind in Typedecl.