Supply package:ghc

SupplyContext theta is a standalone deriving declaration, where theta is the context supplied by the user.
Get a new UniqueSupply
Unique Supply A value of type UniqSupply is unique, and it can supply one distinct Unique. Also, from the supply, one can also manufacture an arbitrary number of further UniqueSupply values, which will be distinct from the first and from all others.
Get the tag uniques generated from this deterministic unique supply would have
Initialize a deterministic unique supply with the given Tag and initial unique.
Set the tag of uniques generated from this deterministic unique supply
Create an infinite list of UniqSupply from a single one
Create a unique supply out of thin air. The "tag" (Char) supplied is mostly cosmetic, making it easier to figure out where a Unique was born. See Note [Uniques and tags]. The payload part of the Uniques allocated from this UniqSupply are guaranteed distinct wrt all other supplies, regardless of their "tag". This is achieved by allocating the payload part from a single source of Uniques, namely genSym, shared across all UniqSupply's.
Build two UniqSupply from a single one, each of which can supply its own Unique.
Obtain the Unique from this particular UniqSupply, and a new supply
Obtain the Unique from this particular UniqSupply
Obtain an infinite list of Unique that can be generated by constant splitting of the supply