Module Alloc.Const

include Mode_intf.Const with type t = (Locality.Const.t, Linearity.Const.t, Uniqueness.Const.t, Portability.Const.t, Contention.Const.t, Forkable.Const.t, Yielding.Const.t, Statefulness.Const.t, Visibility.Const.t, Staticity.Const.t) modes
include Mode_intf.Lattice with type t = (Locality.Const.t, Linearity.Const.t, Uniqueness.Const.t, Portability.Const.t, Contention.Const.t, Forkable.Const.t, Yielding.Const.t, Statefulness.Const.t, Visibility.Const.t, Staticity.Const.t) modes
val min : t
val max : t
val le : t -> t -> bool
val equal : t -> t -> bool

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

val join : t -> t -> t
val meet : t -> t -> t
val print : Format.formatter -> t -> unit
val legacy : t
module Option : sig ... end
val is_max : 'a Axis.t -> 'a -> bool
val is_min : 'a Axis.t -> 'a -> bool
val diff : t -> t -> Option.t

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.

val close_over : t -> Comonadic.Const.t

Similar to Alloc.close_over but for constants

val partial_apply : t -> Comonadic.Const.t

Similar to Alloc.partial_apply but for constants

val comonadic_to_monadic_min : Comonadic.Const.t -> Monadic.Const.t

Similar to comonadic_to_monadic_min but for constants

val print_axis : 'a Axis.t -> Format.formatter -> 'a -> unit

Prints a constant on any axis.