|
| Control.Comonad.Supply | | Portability | portable | | Stability | provisional | | Maintainer | Edward Kmett <ekmett@gmail.com> |
|
|
|
|
|
| Description |
The technique for generating new values is based on the paper
''On Generating Unique Names''
by Lennart Augustsson, Mikael Rittri, and Dan Synek.
Integrated from value-supply-0.1
TODO: a SupplyT Comonad Transformer
|
|
| Synopsis |
|
|
|
| Documentation |
|
| module Control.Comonad |
|
| Creating supplies
|
|
|
| A type that can be used to generate values on demand.
A supply may be turned into two different supplies by using
the functions supplyLeft and supplyRight.
| Instances | |
|
|
|
| Creates a new supply of values.
The arguments specify how to generate values:
the first argument is an initial value, the
second specifies how to generate a new value from an existing one.
|
|
|
| A supply of values that are in the Enum class.
The initial value is toEnum 0, new values are generates with succ.
|
|
|
| A supply of values that are in the Num class.
The initial value is 0, new values are generated by adding 1.
|
|
| Obtaining values from supplies
|
|
|
| Get the value of a supply. This function, together with
modifySupply forms a comonad on Supply.
|
|
| Generating new supplies from old
|
|
|
| Generate a new supply. This supply is different from the one
generated with supplyRight.
|
|
|
| Generate a new supply. This supply is different from the one
generated with supplyLeft.
|
|
|
| Generate a new supply by systematically applying a function
to an existing supply. This function, together with supplyValue
form a comonad on Supply.
|
|
|
| Generate an infinite list of supplies by using supplyLeft and
supplyRight repeatedly.
|
|
|
| Split a supply into two different supplies.
The resulting supplies are different from the input supply.
|
|
|
| Split a supply into three different supplies.
|
|
|
| Split a supply into four different supplies.
|
|
| Produced by Haddock version 2.3.0 |