sig
  type 'a t = 'a * int
  val make : '-> int -> 'Scoped.t
  val get : 'Scoped.t -> 'a
  val scope : 'Scoped.t -> int
  val set : 'Scoped.t -> '-> 'Scoped.t
  val same_scope : 'Scoped.t -> 'Scoped.t -> bool
  val equal : ('-> '-> bool) -> 'Scoped.t -> 'Scoped.t -> bool
  val compare : 'CCOrd.t -> 'Scoped.t CCOrd.t
  val hash_fun : 'CCHash.hash_fun -> 'Scoped.t CCHash.hash_fun
  val hash : 'CCHash.hash_fun -> 'Scoped.t -> int
  val map : ('-> 'b) -> 'Scoped.t -> 'Scoped.t
  val on : ('-> 'b) -> 'Scoped.t -> 'b
  val on2 : ('-> '-> 'c) -> 'Scoped.t -> 'Scoped.t -> 'c
  val pp : 'CCFormat.printer -> 'Scoped.t CCFormat.printer
  val to_string : 'CCFormat.printer -> 'Scoped.t -> string
end