Modes_libval sexp_of_monadicity : monadicity -> Sexplib0.Sexp.tModal axes
val sexp_of_locality : locality -> Sexplib0.Sexp.tval sexp_of_portability : portability -> Sexplib0.Sexp.tval sexp_of_contention : contention -> Sexplib0.Sexp.tval sexp_of_statefulness : statefulness -> Sexplib0.Sexp.tval sexp_of_visibility : visibility -> Sexplib0.Sexp.tval sexp_of_linearity : linearity -> Sexplib0.Sexp.tval sexp_of_uniqueness : uniqueness -> Sexplib0.Sexp.tval sexp_of_yielding : yielding -> Sexplib0.Sexp.tval sexp_of_forkable : forkable -> Sexplib0.Sexp.tval sexp_of_staticity : staticity -> Sexplib0.Sexp.tNonmodal jkind axes (soon to be nontrivialities)
val sexp_of_externality : externality -> Sexplib0.Sexp.tval sexp_of_nullability : nullability -> Sexplib0.Sexp.tval sexp_of_separability : separability -> Sexplib0.Sexp.ttype !'a axis = | Locality : locality axis| Portability : portability axis| Contention : contention axis| Statefulness : statefulness axis| Visibility : visibility axis| Linearity : linearity axis| Uniqueness : uniqueness axis| Yielding : yielding axis| Forkable : forkable axis| Staticity : staticity axisval sexp_of_axis : 'a. 'a axis -> Sexplib0.Sexp.ttype !'a nonmodal_axis = | Externality : externality nonmodal_axis| Nullability : nullability nonmodal_axis| Separability : separability nonmodal_axismodule type Wrapper = sig ... endmodule type Lattice = sig ... endmodule type Per_axis = sig ... endmodule type Nonmodal_axis = sig ... endmodule Base_sort : sig ... endmodule Modal : sig ... endmodule Nonmodal : sig ... endmodule Jkind_mod : sig ... endmodule Layout : sig ... endmodule type Axis = sig ... endmodule Axis : sig ... endmodule Nonmodal_axis : sig ... endmodule Jkind_axis : sig ... endModal axes
module Portability : Axis with type t = portabilitymodule Contention : Axis with type t = contentionmodule Statefulness : Axis with type t = statefulnessmodule Visibility : Axis with type t = visibilitymodule Uniqueness : Axis with type t = uniquenessNonmodal jkind axes (soon to be nontrivialities)
module Externality : Nonmodal_axis with type t = externalitymodule Nullability : Nonmodal_axis with type t = nullabilitymodule Separability : Nonmodal_axis with type t = separabilitymodule Optional : sig ... endmodule Modes : sig ... endmodule Modalities : sig ... endmodule Crossings : sig ... endmodule Nonmodals : sig ... endmodule Jkind_modifiers : sig ... endmodule Kind : sig ... endval apply_modalities : Modalities.t -> Modes.t -> Modes.tval cross : Crossings.t -> Modes.t -> Modes.tcross 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 : Crossings.t -> Modes.t -> Modes.tuncross 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.