jon.recoil.org

Module Alloc.Const

include Ocaml_typing.Mode_intf.Const with type t = (Ocaml_typing.Mode.Locality.Const.t, Ocaml_typing.Mode.Linearity.Const.t, Ocaml_typing.Mode.Uniqueness.Const.t, Ocaml_typing.Mode.Portability.Const.t, Ocaml_typing.Mode.Contention.Const.t, Ocaml_typing.Mode.Forkable.Const.t, Ocaml_typing.Mode.Yielding.Const.t, Ocaml_typing.Mode.Statefulness.Const.t, Ocaml_typing.Mode.Visibility.Const.t, Ocaml_typing.Mode.Staticity.Const.t) Ocaml_typing.Mode.Alloc.modes
include Ocaml_typing.Mode_intf.Lattice with type t = (Ocaml_typing.Mode.Locality.Const.t, Ocaml_typing.Mode.Linearity.Const.t, Ocaml_typing.Mode.Uniqueness.Const.t, Ocaml_typing.Mode.Portability.Const.t, Ocaml_typing.Mode.Contention.Const.t, Ocaml_typing.Mode.Forkable.Const.t, Ocaml_typing.Mode.Yielding.Const.t, Ocaml_typing.Mode.Statefulness.Const.t, Ocaml_typing.Mode.Visibility.Const.t, Ocaml_typing.Mode.Staticity.Const.t) Ocaml_typing.Mode.Alloc.modes

equal a b is equivalent to le a b && le b a, but defined separately for performance reasons

module Option : sig ... end
val is_max : 'a Ocaml_typing.Mode.Alloc.Axis.t -> 'a -> bool
val is_min : 'a Ocaml_typing.Mode.Alloc.Axis.t -> 'a -> bool

diff a b returns None for axes where a and b match, and Some a0 for axes where a is a0 and b isn't.

Similar to Alloc.close_over but for constants

Similar to Alloc.partial_apply but for constants

Similar to comonadic_to_monadic_min but for constants

val print_axis : 'a Ocaml_typing.Mode.Alloc.Axis.t -> Stdlib.Format.formatter -> 'a -> unit

Prints a constant on any axis.