Module Jkind.Sort
include Ocaml_typing.Jkind_intf.Sort
with type t = Ocaml_typing.Jkind_types.Sort.t
and type base = Ocaml_typing.Jkind_types.Sort.base
and type Const.t = Ocaml_typing.Jkind_types.Sort.Const.t
type t = Ocaml_typing.Jkind_types.Sort.tA sort classifies how a type is represented at runtime. Every concrete jkind has a sort, and knowing the sort is sufficient for knowing the calling convention of values of a given type.
type base = Ocaml_typing.Jkind_types.Sort.base = | Void(*No run time representation at all
*)| Value(*Standard ocaml value representation
*)| Untagged_immediate(*Untagged 31- or 63-bit immediates, but without the tag bit, so they must never be visible to the GC
*)| Float64(*Unboxed 64-bit floats
*)| Float32(*Unboxed 32-bit floats
*)| Word(*Unboxed native-size integers
*)| Bits8(*Unboxed 8-bit integers
*)| Bits16(*Unboxed 16-bit integers
*)| Bits32(*Unboxed 32-bit integers
*)| Bits64(*Unboxed 64-bit integers
*)| Vec128(*Unboxed 128-bit simd vectors
*)| Vec256(*Unboxed 256-bit simd vectors
*)| Vec512(*Unboxed 512-bit simd vectors
*)
These are the constant sorts -- fully determined and without variables
module Const : sig ... endmodule Var : sig ... endval void : Ocaml_typing.Jkind.Sort.tval value : Ocaml_typing.Jkind.Sort.tval float64 : Ocaml_typing.Jkind.Sort.tval float32 : Ocaml_typing.Jkind.Sort.tval word : Ocaml_typing.Jkind.Sort.tval bits32 : Ocaml_typing.Jkind.Sort.tval bits64 : Ocaml_typing.Jkind.Sort.tval new_var : level:int -> Ocaml_typing.Jkind.Sort.tCreate a new sort variable that can be unified.
val of_base : Ocaml_typing.Jkind.Sort.base -> Ocaml_typing.Jkind.Sort.tval of_const : Ocaml_typing.Jkind.Sort.Const.t -> Ocaml_typing.Jkind.Sort.tval of_var : Ocaml_typing.Jkind.Sort.var -> Ocaml_typing.Jkind.Sort.tval equate : Ocaml_typing.Jkind.Sort.t -> Ocaml_typing.Jkind.Sort.t -> boolThis checks for equality, and sets any variables to make two sorts equal, if possible
val format : Stdlib.Format.formatter -> Ocaml_typing.Jkind.Sort.t -> unitval is_void_defaulting : Ocaml_typing.Jkind.Sort.t -> boolChecks whether this sort is void, defaulting to value if a sort variable is unfilled.
val default_to_value_and_get :
Ocaml_typing.Jkind.Sort.t ->
Ocaml_typing.Jkind.Sort.Const.tdefault_to_value_and_get extracts the sort as a `const`. If it's a variable, it is set to value first.
val default_for_transl_and_get :
Ocaml_typing.Jkind.Sort.t ->
Ocaml_typing.Jkind.Sort.Const.tdefault_for_transl_and_get extracts the sort as a `const`. If it's a variable, it is set to value first. After we have support for void, this will default to void instead.
val undo_change : Ocaml_typing.Jkind.Sort.change -> unitmodule Debug_printers : sig ... endmodule Flat : sig ... end