Module Univ.Instance

type t

A universe instance represents a vector of argument universes to a polymorphic definition (constant, inductive or constructor).

val empty : t
val is_empty : t -> bool
val of_array : Level.t array -> t
val to_array : t -> Level.t array
val append : t -> t -> t

To concatenate two instances, used for discharge

val equal : t -> t -> bool

Equality

val length : t -> int

Instance length

val hcons : t -> t

Hash-consing.

val hash : t -> int

Hash value

val share : t -> t * int

Simultaneous hash-consing and hash-value computation

val subst_fn : universe_level_subst_fn -> t -> t

Substitution by a level-to-level function.

val pr : (Level.t -> Pp.t) -> ?⁠variance:Variance.t array -> t -> Pp.t

Pretty-printing, no comments

val levels : t -> LSet.t

The set of levels in the instance