]> matita.cs.unibo.it Git - pkg-cerco/acc.git/blob - src/utilities/stringSig.mli
first version of the package
[pkg-cerco/acc.git] / src / utilities / stringSig.mli
1
2 (** The module type declares functions to manipulate and create fresh
3     strings. *)
4
5 module type S = sig
6
7   type t = string
8
9   val compare : t -> t -> int
10
11   module Set : sig
12     include Set.S with type elt = t
13     val of_list : elt list -> t
14     val unionl : t list -> t
15   end
16
17   module Map : Map.S with type key = t
18
19   module Gen : sig
20     type universe
21     val fresh_prefix : Set.t -> string -> string
22     val new_universe : string -> universe
23     val fresh : universe -> string
24   end
25
26   val make_unique : Set.t -> (string -> string)
27   val make_fresh  : Set.t -> string -> (unit -> string)
28
29   val dummy : t
30
31 end