Module Types.Separability
see Typedecl_separability for an explanation of separability and separability modes.
val eq : Types.Separability.t -> Types.Separability.t -> boolval print : Stdlib.Format.formatter -> Types.Separability.t -> unitval rank : Types.Separability.t -> intModes are ordered from the least to the most demanding: Ind < Sep < Deepsep. 'rank' maps them to integers in an order-respecting way: m1 < m2 <=> rank m1 < rank m2
val compare : Types.Separability.t -> Types.Separability.t -> intCompare two mode according to their mode ordering.
val max : Types.Separability.t -> Types.Separability.t -> Types.Separability.tmax_mode m1 m2 returns the most demanding mode. It is used to express the conjunction of two parameter mode constraints.
type signature = Types.Separability.t listThe 'separability signature' of a type assigns a mode for each of its parameters. ('a, 'b) t has mode (m1, m2) if (t1, t2) t is separable whenever t1, t2 have mode m1, m2.
val print_signature :
Stdlib.Format.formatter ->
Types.Separability.signature ->
unitval default_signature : arity:int -> Types.Separability.signatureThe most pessimistic separability for a completely unknown type.