Module Modes_lib.Modes

include Per_axis with type 'a wrapped := 'a Mode.t
type t = {
  1. locality : Modes_lib__.Modes_lib_intf.Definitions.locality Mode.t;
  2. portability : Modes_lib__.Modes_lib_intf.Definitions.portability Mode.t;
  3. contention : Modes_lib__.Modes_lib_intf.Definitions.contention Mode.t;
  4. statefulness : Modes_lib__.Modes_lib_intf.Definitions.statefulness Mode.t;
  5. visibility : Modes_lib__.Modes_lib_intf.Definitions.visibility Mode.t;
  6. linearity : Modes_lib__.Modes_lib_intf.Definitions.linearity Mode.t;
  7. uniqueness : Modes_lib__.Modes_lib_intf.Definitions.uniqueness Mode.t;
  8. yielding : Modes_lib__.Modes_lib_intf.Definitions.yielding Mode.t;
  9. forkable : Modes_lib__.Modes_lib_intf.Definitions.forkable Mode.t;
  10. staticity : Modes_lib__.Modes_lib_intf.Definitions.staticity Mode.t;
}
val sexp_of_t : t -> Sexplib0.Sexp.t
type make_f = {
  1. f : 'a. 'a Modes_lib__.Modes_lib_intf.Definitions.axis -> 'a Mode.t;
}
val make : make_f -> t
val get : t -> 'a Modes_lib__.Modes_lib_intf.Definitions.axis -> 'a Mode.t
val set : t -> 'a Modes_lib__.Modes_lib_intf.Definitions.axis -> 'a Mode.t -> t
include Lattice with type t := t
val top : t
val bottom : t
val join : t -> t -> t
val meet : t -> t -> t
val le : t -> t -> bool
val equal : t -> t -> bool
val of_modals : Modal.t list -> t

When omitted, axis is filled in with default or implied mode.

val to_modals : t -> Modal.t list
val to_modals_explicit : t -> Modal.t list