Module Names.Projection

module Repr : sig ... end
type t
val make : Repr.t -> bool -> t
val repr : t -> Repr.t
include QNameS with type t := t
module CanOrd : EqType with type t = t

Equality functions over the canonical name. Their use should be restricted to the kernel.

module UserOrd : EqType with type t = t

Equality functions over the user name.

module SyntacticOrd : EqType with type t = t

Equality functions using both names, for low-level uses.

val constant : t -> Constant.t
val mind : t -> MutInd.t
val inductive : t -> inductive
val npars : t -> int
val arg : t -> int
val label : t -> Label.t
val unfolded : t -> bool
val unfold : t -> t
val equal : t -> t -> bool
val hash : t -> int
val hcons : t -> t

Hashconsing of projections.

val repr_equal : t -> t -> bool

Ignoring the unfolding boolean.

val compare : t -> t -> int
val map : ( MutInd.t -> MutInd.t ) -> t -> t
val map_npars : ( int -> int ) -> t -> t
val to_string : t -> string

Encode as a string (not to be used for user-facing messages).

val print : t -> Pp.t

Print internal representation (not to be used for user-facing messages).