|Maintainer||Edward Kmett <firstname.lastname@example.org>|
This library can be used to generate values (for example, new names) without the need to thread state. This means that functions that need to generate new values only need a supply object as an argument, and they do not need to return a new supply object as a result. This decreases the number of data-dependencies in a program, which makes it easier to exploit parallelism.
The technique for generating new values is based on the paper ''On Generating Unique Names'' by Lennart Augustsson, Mikael Rittri, and Dan Synek.
|Eq a => Eq (Supply a)|
|(Typeable (Supply a), Data a) => Data (Supply a)|
|(Eq (Supply a), Ord a) => Ord (Supply a)|
|Read a => Read (Supply a)|
|Show a => Show (Supply a)|