module Scoped:sig
..end
A scoped value is a pair of the value and an (integer) scope.
The value contains variables, but a value in a scope A
share no variables with the same value in any scope B ≠ A.
type'a
t ='a * int
val make : 'a -> int -> 'a t
val get : 'a t -> 'a
val scope : 'a t -> int
val set : 'a t -> 'b -> 'b t
set v x
is x
with the same scope as v
val same_scope : 'a t -> 'b t -> bool
val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
val compare : 'a CCOrd.t -> 'a t CCOrd.t
val hash_fun : 'a CCHash.hash_fun -> 'a t CCHash.hash_fun
val hash : 'a CCHash.hash_fun -> 'a t -> int
val map : ('a -> 'b) -> 'a t -> 'b t
val on : ('a -> 'b) -> 'a t -> 'b
val on2 : ('a -> 'b -> 'c) -> 'a t -> 'b t -> 'c
val pp : 'a CCFormat.printer -> 'a t CCFormat.printer
val to_string : 'a CCFormat.printer -> 'a t -> string