!/-m&      !"#$%(c) 2012-2013 MichaB PaBkaBSD3michal.palka@chalmers.se experimentalportableNone F tf-random Alternative  class with a modified  operation, and added  and  operations.Using the generator requires that no more than one operation is called on the same generator state, as the implementation does not guarantee pseudorandomness otherwise. As an exception, calling q many times on the same generator state is allowed as long as the 'bits' argument is the same for all the calls. tf-random returns a &S that appears to have been chosen uniformly at random, and a new generator state. tf-randomd returns two derived generator states that appear to be independent pseudorandom number generators. tf-randomf is the n-way split operation used to create many derived generator states in one go. Application of  to two first arguments should be shared between different applications of the index argument to avoid unnecessary repeated computations.The following code creates ten 'independent' generator states. Number '4' comes from the fact that at least four bits are needed to encode ten different indices. A f :: RandomGen g => g -> [g] f r = map (splitn r 4) [0..9]  tf-random is a 'hint' operation that may cause an iteration of work of the generator be performed prematurely in order to prevent the subsequent operations from being expensive. It is meant to be called before a T operation, which is expected to be evaluated a very large number indices. Calling A in such case might decrease the total amount of work performed. tf-randomThe generator type tf-random&Create a generator from a random seed. tf-randomOriginal generator state. tf-randomXNumber of bits that will be used to index the derived states. Must be between 0 and 32. tf-random$Index of the derived state. Call to  splitn r n i must satisfy  0 <= i < 2^n.None) tf-randomSUse system time create the random seed. This method of seeding may not be relible. tf-randomUse the UNIX special file  /dev/urandom" to create the seed. Inspired by  random-mwc. tf-random>Create a seed and used it to seed an instance of TFGen. Uses  on UNIX, and  otherwise. tf-randomDerive a new generator instance from the global RNG using split. This is the default way of obtaining a new RNG instance. Initial generator is seeded using  on UNIX, and D otherwise. This should be eventually replaced with proper seeding. tf-randomFQuick and dirty way of creating a deterministically seeded generator.(c) 2012-2013 MichaB PaBkaBSD3michal.palka@chalmers.se experimentalportableNone+(c) 2012-2013 MichaB PaBkaBSD3michal.palka@chalmers.se experimentalportableNoneX-9'      !"#$%&'()*+,-.$tf-random-0.5-KkmAQKOzNBJ7UW85eoHWYdSystem.Random.TF.GenSystem.Random.TF.InitSystem.Random.TF.InstancesSystem.Random.TF RandomGennextsplitsplitnlevelTFGen seedTFGen$fRandomGenTFGen $fReadTFGen $fShowTFGen $fReadHex $fShowHex$fRandomGenTFGen0 $fShowTFGenR $fReadTFGenR mkSeedTime mkSeedUnix initTFGennewTFGenmkTFGenRandomrandomRrandomrandomRsrandoms randomEnum $fRandomInt16$fRandomWord16 $fRandomInt8 $fRandomWord8 $fRandomInt64 $fRandomInt32$fRandomWord64$fRandomWord32$fRandomInteger $fRandomBool $fRandomChar $fRandomIntbaseGHC.WordWord32