ContextThe modules defined below represent a local context as defined by Chapter 4 in the Reference Manual:
A local context is an ordered list of of local declarations of names that we call variables.
A local declaration of some variable can be either:
Local assumptions are denoted in the Reference Manual as (name : typ) and local definitions are there denoted as (name := value : typ).
val eq_annot : ('a -> 'a -> bool) -> ('r -> 'r -> bool) -> ('a, 'r) pbinder_annot -> ('a, 'r) pbinder_annot -> boolval hash_annot : ('a -> int) -> ('a, Sorts.relevance) pbinder_annot -> intval map_annot : ('a -> 'b) -> ('a, 'r) pbinder_annot -> ('b, 'r) pbinder_annotval map_annot_relevance : ('r -> 'r) -> ('a, 'r) pbinder_annot -> ('a, 'r) pbinder_annotval map_annot_relevance_het : ('r1 -> 'r2) -> ('a, 'r1) pbinder_annot -> ('a, 'r2) pbinder_annotval make_annot : 'a -> 'r -> ('a, 'r) pbinder_annotval binder_name : ('a, 'r) pbinder_annot -> 'aval binder_relevance : ('a, 'r) pbinder_annot -> 'rval annotR : 'a -> ('a, Sorts.relevance) pbinder_annotAlways Relevant
val nameR : Names.Id.t -> (Names.Name.t, Sorts.relevance) pbinder_annotRelevant + Name
val anonR : (Names.Name.t, Sorts.relevance) pbinder_annotRelevant + Anonymous
module Rel : sig ... endRepresentation of contexts that can capture anonymous as well as non-anonymous variables. Individual declarations are then designated by de Bruijn indexes.
module Named : sig ... endThis module represents contexts that can capture non-anonymous variables. Individual declarations are then designated by the identifiers they bind.
module Compacted : sig ... end