jon.recoil.org

Module With_subkind.Non_null_value_subkind

type t =
  1. | Anything
  2. | Boxed_float32
  3. | Boxed_float
  4. | Boxed_int32
  5. | Boxed_int64
  6. | Boxed_nativeint
  7. | Boxed_vec128
  8. | Boxed_vec256
  9. | Boxed_vec512
  10. | Tagged_immediate
  11. | Variant of {
    1. consts : Flambda2_numbers.Target_ocaml_int.Set.t;
    2. non_consts : (Flambda2_kinds.Flambda_kind.Block_shape.t * Flambda2_kinds.Flambda_kind.With_subkind.full_kind list) Flambda2_kinds.Tag.Scannable.Map.t;
    }
  12. | Float_block of {
    1. num_fields : int;
    }
  13. | Float_array
  14. | Immediate_array
  15. | Value_array
  16. | Generic_array
  17. | Unboxed_float32_array
  18. | Untagged_int_array
  19. | Untagged_int8_array
  20. | Untagged_int16_array
  21. | Unboxed_int32_array
  22. | Unboxed_int64_array
  23. | Unboxed_nativeint_array
  24. | Unboxed_vec128_array
  25. | Unboxed_vec256_array
  26. | Unboxed_vec512_array
  27. | Unboxed_product_array
include Flambda2_algorithms.Container_types.S with type t := Flambda2_kinds.Flambda_kind.With_subkind.Non_null_value_subkind.t
include Flambda2_algorithms.Container_types_intf.Thing with type t := Flambda2_kinds.Flambda_kind.With_subkind.Non_null_value_subkind.T.t
include Stdlib.Hashtbl.HashedType with type t := Flambda2_kinds.Flambda_kind.With_subkind.Non_null_value_subkind.T.t

A hashing function on keys. It must be such that if two keys are equal according to equal, then they have identical hash values as computed by hash. Examples: suitable (equal, hash) pairs for arbitrary key types include

  • ((=), hash) for comparing objects by structure (provided objects do not contain floats)
  • ((fun x y -> compare x y = 0), hash) for comparing objects by structure and handling Stdlib.nan correctly
  • ((==), hash) for comparing objects by physical equality (e.g. for mutable or cyclic objects).
include Stdlib.Map.OrderedType with type t := Flambda2_kinds.Flambda_kind.With_subkind.Non_null_value_subkind.T.t

A total ordering function over the keys. This is a two-argument function f such that f e1 e2 is zero if the keys e1 and e2 are equal, f e1 e2 is strictly negative if e1 is smaller than e2, and f e1 e2 is strictly positive if e1 is greater than e2. Example: a suitable ordering function is the generic structural comparison function Stdlib.compare.