Module Crossing.Monadic

module Atom : sig ... end
type t

The mode crossing capability on the whole monadic fragment.

include Mode_intf.Lattice with type t := t
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 create : uniqueness:Uniqueness.Const.t Atom.t -> contention:Contention.Const.t Atom.t -> visibility:Visibility.Const.t Atom.t -> staticity:Staticity.Const.t Atom.t -> t

Create a mode crossing on the monadic fragment from the collection of mode crossings on each monadic axes.