úÎÔï     portable provisional,Iavor S. Diatchki <iavor.diatchki@gmail.com>6A type that can be used to generate values on demand. 9Get the value of a supply. This function, together with   forms a comonad on . 'Generate an infinite list of supplies. ,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.  Creates a new supply of values. / The arguments specify how to generate values: - the first argument is an initial value, the D second specifies how to generate a new value from an existing one. Create a new supply of values. & WARNING: This version is faster then  but it is not completely 6 thread safe, so use only if performance is an issue! (Rules for using the generated supplies: > * Supply splitting should be evaluated in a single thread.  For example, use case with  to force the splitting  of a supply. < * Different threads should work with different supplies. @ For example, one could (strictly) split a supply, and then 3 fork new threads with the resulting supplies. <Generate a new supply by systematically applying a function 6 to an existing supply. This function, together with   form a comonad on . #A supply of values that are in the  class.  The initial value is toEnum 0 , new values are generates with . #A supply of values that are in the  class. ? The initial value is 0, new values are generated by adding 1. #A supply of values that are in the  class.  The initial value is toEnum 0 , new values are generates with .  WARNING: See comment on  #A supply of values that are in the  class. ? The initial value is 0, new values are generated by adding 1.  WARNING: See comment on            value-supply-0.5 Data.SupplySupply supplyValuesplitsplit2split3split4 newSupplynewDupableSupply modifySupply newEnumSupply newNumSupplynewDupableEnumSupplynewDupableNumSupplyNodebaseGHC.EnumEnumsuccGHC.NumNum