jon.recoil.org

Module Sort.Const

type t = Jkind_types.Sort.Const.t =
  1. | Base of base
  2. | Product of t list
  3. | Univar of univar
  4. | Genvar of var
    (*

    A layout variable bound by a surrounding val_lpoly. It's a "fake" constant that will be instantiated to real layout constant by slambda. The var is used only for physical identity; its contents are not consumed and its level must be Ident.highest_scope.

    *)
val equal : t -> t -> bool
val format : Format_doc.formatter -> t -> unit
val all_void : t -> bool
val scannable : t
val void : t
val float64 : t
val float32 : t
val word : t
val untagged_immediate : t
val bits8 : t
val bits16 : t
val bits32 : t
val bits64 : t
val vec128 : t
val vec256 : t
val vec512 : t
module Debug_printers : sig ... end
val for_class_arg : t
val for_instance_var : t
val for_lazy_body : t
val for_tuple_element : t
val for_variant_arg : t
val for_boxed_record : t
val for_block_element : t
val for_array_get_result : t
val for_array_comprehension_element : t
val for_list_element : t
val for_function : t

These are sorts for the types of ocaml expressions that we expect will always be "value". These names are used in the translation to lambda to make the code clearer.

val for_probe_body : t
val for_poly_variant : t
val for_object : t
val for_initializer : t
val for_method : t
val for_module : t
val for_predef_scannable : t

Predefined scannable types, e.g. int and string

val for_tuple : t
val for_idx : t
val for_loop_index : t
val for_constructor : t
val for_boxed_variant : t
val for_exception : t
val for_type_extension : t
val for_class : t