Module Modes_lib.Portability

type t = portability
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 all : t list
val monadicity : Modes_lib__.Modes_lib_intf.Definitions.monadicity
val legacy : t
val of_modal : Modes_lib__.Modes_lib_intf.Definitions.Modal.t -> t option
val to_modal : t -> Modes_lib__.Modes_lib_intf.Definitions.Modal.t
val compare : t -> t -> int

Implementations of Axis must provide a total order over its elements. compare should agree naturally with le and equal.

val sexp_of_t : t -> Sexplib0.Sexp.t
val apply_modality : t Modality.t -> t Mode.t -> t Mode.t
val cross : t Crossing.t -> t Mode.t -> t Mode.t

cross crossing mode strengthens mode as it would on a variable of kind _ mod crossing.

In the compiler, this is known as cross_left.

val uncross : t Crossing.t -> t Mode.t -> t Mode.t

uncross crossing mode is the weakest mode mode' such that cross crossing mode' is at least as strong as mode. It acts as a sort of inverse to cross.

In the compiler, this is known as cross_right.