Module Ident.Unscoped

Unscoped defines a notion of identifier that are bound locally inside a module-dependant function type : (module M : S) -> t).

Those identifiers do not have scopes because they are bound locally and can be unified with each other to respect alpha-conversion.

type t
val create : string -> t
val refresh : t -> t
val name : t -> string
val same : t -> t -> bool
type change
val change_log : (change -> unit) ref
val undo_change : change -> unit
module Set : Set.S with type elt = t