úÎ!“ŚŽÜN      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHI J K LM None#~  random-source…Build a word out of 2 bytes. No promises are made regarding the order in which the bytes are stuffed. Note that this means that a  RandomSource or  MonadRandom) making use of the default definition of  getRandomWord, etc., may return different random values on different platforms when started with the same seed, depending on the platform's endianness.  random-source…Build a word out of 4 bytes. No promises are made regarding the order in which the bytes are stuffed. Note that this means that a  RandomSource or  MonadRandom) making use of the default definition of  getRandomWord, etc., may return different random values on different platforms when started with the same seed, depending on the platform's endianness.  random-source…Build a word out of 8 bytes. No promises are made regarding the order in which the bytes are stuffed. Note that this means that a  RandomSource or  MonadRandom) making use of the default definition of  getRandomWord, etc., may return different random values on different platforms when started with the same seed, depending on the platform's endianness. random-sourcePack the low 23 bits from a N into a O( in the range [0,1). Used to convert a  stdUniform N to a  stdUniform P. random-source^Same as word32ToFloat, but also return the unused bits (as the 9 least significant bits of a N) random-sourcePack the low 23 bits from a Q into a O( in the range [0,1). Used to convert a  stdUniform Q to a  stdUniform P. random-source]Same as wordToFloat, but also return the unused bits (as the 41 least significant bits of a Q) random-sourcePack the low 52 bits from a Q into a P( in the range [0,1). Used to convert a  stdUniform Q to a  stdUniform P. random-sourcePack a N into a Pd in the range [0,1). Note that a Double's mantissa is 52 bits, so this does not fill all of them. random-source^Same as wordToDouble, but also return the unused bits (as the 12 least significant bits of a Q)   Safe&'2SX0ť random-sourceA PromptË GADT describing a request for a primitive random variate. Random variable definitions will request their entropy via these prompts, and entropy sources will satisfy those requests. The functions in Data.Random.Source.Internal.TH‰ extend incomplete entropy-source definitions to complete ones, essentially defining a very flexible implementation-defaulting system.űSome possible future additions: PrimFloat :: Prim Float PrimInt :: Prim Int PrimPair :: Prim a -> Prim b -> Prim (a :*: b) PrimNormal :: Prim Double PrimChoice :: [(Double :*: a)] -> Prim a PrimBytes :: !Int -> Prim ByteString’Unfortunately, I cannot get Haddock to accept my comments about the data constructors, but hopefully they should be reasonably self-explanatory.None &'=>?@ASXeë random-source%This type provides a way to define a = for a monad without actually having to declare an instance. random-source9A source of entropy which can be used in the given monad. See also '..Minimum implementation is either the internal  š or all other functions. Additionally, this class's interface is subject to extension at any time, so it is very, very strongly recommended that the  randomSource˙* Template Haskell function be used to implement this function rather than directly implementing it. That function takes care of choosing default implementations for any missing functions; as long as at least one function is implemented, it will derive sensible implementations of all others.To use  randomSource×, just wrap your instance declaration as follows (and enable the TemplateHaskell, MultiParamTypeClasses and GADTs language extensions, as well as any others required by your instances, such as FlexibleInstances): $(randomSource [d| instance RandomSource FooM Bar where {- at least one RandomSource function... -} |])  random-sourceAGenerate a random value corresponding to the specified primitive.^This is an internal interface; use at your own risk. It may change or disappear at any time.! random-source(Generate a uniformly distributed random R" random-source(Generate a uniformly distributed random S# random-source(Generate a uniformly distributed random N$ random-source(Generate a uniformly distributed random Q% random-source(Generate a uniformly distributed random P in the range 0 <= U < 1& random-source(Generate a uniformly distributed random T in the range 0 <= U < 256^n' random-sourceGA typeclass for monads with a chosen source of entropy. For example, RVarŕ is such a monad - the source from which it is (eventually) sampled is the only source from which a random variable is permitted to draw, so when directly requesting entropy for a random variable these functions are used..Minimum implementation is either the internal (š or all other functions. Additionally, this class's interface is subject to extension at any time, so it is very, very strongly recommended that the  monadRandom˙* Template Haskell function be used to implement this function rather than directly implementing it. That function takes care of choosing default implementations for any missing functions; as long as at least one function is implemented, it will derive sensible implementations of all others.To use  monadRandomq, just wrap your instance declaration as follows (and enable the TemplateHaskell and GADTs language extensions): Š$(monadRandom [d| instance MonadRandom FooM where getRandomDouble = return pi getRandomWord16 = return 4 {- etc... -} |])( random-sourceAGenerate a random value corresponding to the specified primitive.^This is an internal interface; use at your own risk. It may change or disappear at any time.) random-source(Generate a uniformly distributed random R* random-source(Generate a uniformly distributed random S+ random-source(Generate a uniformly distributed random N, random-source(Generate a uniformly distributed random Q- random-source(Generate a uniformly distributed random P in the range 0 <= U < 1. random-source(Generate a uniformly distributed random T in the range 0 <= U < 256^n!"#$%& ')*+,-.(')*+,-.(!"#$%&  None&'w›0 random-sourceComplete a possibly-incomplete Ux implementation. It is recommended that this macro be used even if the implementation is currently complete, as the U# class may be extended at any time.To use 0×, just wrap your instance declaration as follows (and enable the TemplateHaskell, MultiParamTypeClasses and GADTs language extensions, as well as any others required by your instances, such as FlexibleInstances): $(randomSource [d| instance RandomSource FooM Bar where {- at least one RandomSource function... -} |])1 random-sourceComplete a possibly-incomplete Ux implementation. It is recommended that this macro be used even if the implementation is currently complete, as the U# class may be extended at any time.To use 1q, just wrap your instance declaration as follows (and enable the TemplateHaskell and GADTs language extensions): Š$(monadRandom [d| instance MonadRandom FooM where getRandomDouble = return pi getRandomWord16 = return 4 {- etc... -} |])01None &'=?@Ax"!"#$%&')*+,-.01')*+,-.!"#$%&10None&'@A˘7 random-source˙On systems that have it, /dev/random is a handy-dandy ready-to-use source of nonsense. Keep in mind that on some systems, Linux included, /dev/random collects "real" entropy, and if you don't have a good source of it, such as special hardware for the purpose or a *lot* of network traffic, it's pretty easy to suck the entropy pool dry with entropy-intensive applications. For many purposes other than cryptography, /dev/urandom is preferable because when it runs out of real entropy it'll still churn out pseudorandom data.789789NoneřNone &'=?@A‚vNone &'=?@ASXŠŠA random-sourceGiven a mutable reference to a V generator, we can make a < usable in any monad in which the reference can be modified.B random-source Similarly, !getRandomWordFromRandomGenState xE can be used in any "state" monad in the mtl sense whose state is a V> generator. Additionally, the standard mtl state monads have 'D instances which do precisely that, allowing an easy conversion of RVar s and other  Distribution& instances to "pure" random variables.ABAB None=?@AŽI random-source8A token representing the "standard" entropy source in a 'P monad. Its sole purpose is to make the following true (when the types check): "runRVar x StdRandom === sampleRVarIJIJNone &'=?@ASXލABLLABW  !"#$%&'( ) * + , - . /00123456789:;<=>?@A B CDEFGHIIJKLMNOPQRSTUVWXY Z Z [\]^_` ab ac^_d^_e^_fghi jkl-random-source-0.3.0.10-JHbxJb76U6zDj9zpSqPHvKData.Random.Source.MWCData.Random.Source.StdGenData.Random.Internal.WordsData.Random.Internal.SourceData.Random.SourceData.Random.Source.DevRandomData.Random.Source.IOData.Random.Source.RandomGenData.Random.Source.Std Data.Random.Source.Internal.PrimData.Random.Source.Internal.THghc-primGHC.Prim RealWorld)mwc-random-0.14.0.0-LOavn6hXcKvRT4YhOjLwASystem.Random.MWCrestoresave initializecreateGen#random-1.2.0-LnDDzBF43Mx1KE2yrv9Wtf System.Random newStdGenSystem.Random.InternalmkStdGenStdGen buildWord16 buildWord32 buildWord32' buildWord64 buildWord64' buildWord64'' word32ToFloatword32ToFloatWithExcess wordToFloatwordToFloatWithExcess wordToDoubleword32ToDoublewordToDoubleWithExcessPrim PrimWord8 PrimWord16 PrimWord32 PrimWord64 PrimDoublePrimNByteIntegerGetPrim RandomSourcegetRandomPrimFromgetRandomWord8FromgetRandomWord16FromgetRandomWord32FromgetRandomWord64FromgetRandomDoubleFromgetRandomNByteIntegerFrom MonadRandom getRandomPrimgetRandomWord8getRandomWord16getRandomWord32getRandomWord64getRandomDoublegetRandomNByteInteger$fRandomSourcemGetPrim randomSource monadRandom$fRandomSourcemm$fRandomSourcemm0$fRandomSourcemm1$fRandomSourcemm2$fRandomSourcemm3 DevRandom DevURandom $fEqDevRandom$fShowDevRandom$fRandomSourceIODevRandom$fMonadRandomIO$fRandomSourceSTGen$fRandomSourceIOGen$fMonadRandomReaderTgetRandomPrimFromRandomGenRefgetRandomPrimFromRandomGenState$fMonadRandomRWST$fMonadRandomRWST0$fMonadRandomStateT$fMonadRandomStateT0$fRandomSourcemIORef$fRandomSourcem1Ref StdRandom$fRandomSourcemStdRandomgetRandomPrimFromStdGenIO$fRandomSourcemSTRefbaseGHC.WordWord32 GHC.TypesFloatDoubleWord64Word8Word16 integer-gmpGHC.Integer.TypeIntegerContext RandomGen