The functor Done ends the numbering process.



type t = t

The type t of values of interest.

val n : int

n is the number of values of type t that have been encoded. The functions encode and decode represent an isomorphism between this subset of t and the interval [0..n).

val encode : t -> int

encode maps a value of type t to an integer code in the interval [0..n).

val decode : int -> t

decode maps an integer code in the interval [0..n) back to a value of type t.