This module provides splittable supplies for unique identifiers. The main idea gows back to L. Augustsson, M. Rittri, and D. Synek and is described in their paper 'On generating unique names' (Journal of Functional Programming 4(1), 1994. pp. 117-123). The implementation at hand is taken from the GHC sources and includes bit fiddling to allow multiple supplies that generate unique identifiers by prepending a character given at initialization.
Supplies for unique identifiers are of type
IdSupply and can be
split into two new supplies or yield a unique identifier.
Generates a new supply of unique identifiers. The given character is prepended to generated numbers.
Splits a supply of unique identifiers to yield an infinite list of them.
Splits a supply of unique identifiers to yield two of them.