úÎÍõ    portable provisional,Iavor S. Diatchki <iavor.diatchki@gmail.com> 6A type that can be used to generate values on demand. = A supply may be turned into two different supplies by using  the functions  and . 9Get the value of a supply. This function, together with   forms a comonad on . >Generate a new supply. This supply is different from the one  generated with . =Generate a new supply. This supply is different from the one  generated with .  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. <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. /Generate an infinite list of supplies by using  and   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.         value-supply-0.2 Data.SupplySupply supplyValue supplyLeft supplyRight newSupply modifySupply newEnumSupply newNumSupplysplitsplit2split3split4NodebaseGHC.EnumEnumsuccGHC.NumNum