# Module `Fix.Numbering`

`Numbering`

offers a facility for assigning a unique number to each value in a certain finite set and translating (both ways) between values and their numbers.

`module Make : functor (M : Fix__.Sigs.IMPERATIVE_MAPS) -> Fix__.Sigs.TWO_PHASE_NUMBERING with type t = M.key`

`module ForOrderedType : functor (T : Fix__.Sigs.OrderedType) -> Fix__.Sigs.TWO_PHASE_NUMBERING with type t = T.t`

`module ForHashedType : functor (T : Fix__.Sigs.HashedType) -> Fix__.Sigs.TWO_PHASE_NUMBERING with type t = T.t`

`module ForType : functor (T : Fix__.Sigs.TYPE) -> Fix__.Sigs.TWO_PHASE_NUMBERING with type t = T.t`