sig
  type t
  val create : Package.plugin -> Package.Scope.t
  val reserve : Package.Scope.t -> string -> unit
  val declare : Package.Scope.t -> Package.ident -> unit
  val use : Package.Scope.t -> Package.ident -> unit
  val resolve : Package.Scope.t -> string Package.IdMap.t
end