Module Sorts

The sorts of CCI.
type family =
| InSProp
| InProp
| InSet
| InType
| InQSort
val all_families : family list
module QVar : sig ... end
module Quality : sig ... end
module QConstraint : sig ... end
module QConstraints : sig ... end
val enforce_eq_quality : Quality.t -> Quality.t -> QConstraints.t -> QConstraints.t
val enforce_leq_quality : Quality.t -> Quality.t -> QConstraints.t -> QConstraints.t
module QUConstraints : sig ... end
type t = private
| SProp
| Prop
| Set
| Type of Univ.Universe.t
| QSort of QVar.t * Univ.Universe.t
val sprop : t
val set : t
val prop : t
val type1 : t
val qsort : QVar.t -> Univ.Universe.t -> t
val make : Quality.t -> Univ.Universe.t -> t
val equal : t -> t -> bool
val compare : t -> t -> int
val hash : t -> int
val is_sprop : t -> bool
val is_set : t -> bool
val is_prop : t -> bool
val is_small : t -> bool
val family : t -> family
val quality : t -> Quality.t
val hcons : t -> t
val family_compare : family -> family -> int
val family_equal : family -> family -> bool
val family_leq : family -> family -> bool
val sort_of_univ : Univ.Universe.t -> t
val levels : t -> Univ.Level.Set.t
val super : t -> t
val subst_fn : ((QVar.t -> Quality.t) * (Univ.Universe.t -> Univ.Universe.t)) -> t -> t
type relevance =
| Relevant
| Irrelevant
| RelevanceVar of QVar.t

On binders: is this variable proof relevant

val relevance_hash : relevance -> int
val relevance_equal : relevance -> relevance -> bool
val relevance_subst_fn : (QVar.t -> Quality.t) -> relevance -> relevance
val relevance_of_sort : t -> relevance
val relevance_of_sort_family : family -> relevance
val debug_print : t -> Pp.t
val pr_sort_family : family -> Pp.t
type pattern =
| PSProp
| PSSProp
| PSSet
| PSType of int option
| PSQSort of int option * int option
val pattern_match : pattern -> t -> ('tQuality.tUniv.Level.t) Partial_subst.t -> ('tQuality.tUniv.Level.t) Partial_subst.t option