HOOGxxcaa d e g i klm n o pr s t wx8`f_i^-imc()->AllzAnyY BlockReasonLBool3CCharCClockCDevCDouble.CFloatCInoCIntECIntMaxCIntPtrCLDouble\CLLongCLongCModeCOff<CPidCPtrdiffCSChardCShort CSigAtomicCSizeCSsizeDCTimeCUChar CUInt CUIntMax: CUIntPtr CULLong CULongb CUShort CWchar Chan Char Complex ConsoleEventr Constri ConstrRep` DataRepW DataTypeQ Double1 Dynamic E12 E6 Either Errno Exception Fd Fixity~ Float^ GeneralCategory< HashData3 IO Id Inserts Int Int16 Int32 Int64 Int8x IntPtr0 Integer Lexeme MaybeNestedAtomically NoMethodErrorNonTerminationnOrdering^PMPatternMatchFail4QSem*QSemN ReadPReadPrec RecConError RecSelError RecUpdErrorSTM StableNameStdGenjTVar_ThreadIdI ThreadStatus<Timeout UniqueVersionWordWord16Word32Word64Word8WordPtr8ZipList#[::][] TraversableFoldable Applicative AlternativeMonadFix MonadPlusFunctorMonadFunctor Applicative ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq PrintfArgDataStorable PrintfArgDataStorable PrintfArgDataStorable PrintfArgDataStorable PrintfArgDataStorableEqOrdShowReadTypeableOrdEqTypeableShow ExceptionEqShowOrdEqShowEqOrdTypeable Typeable1 RandomGenShowRead Typeable1 Typeable1FunctorMonadTypeableShow ExceptionTypeableShow ExceptionTypeableShow ExceptionFunctorMonad MonadPlusFunctorMonad MonadPlusTypeableTypeableTypeableShow ExceptionMonad MonadPlusMonoidDataIxTypeableShow ExceptionTypeableShow ExceptionTypeableShow Exception TraversableFoldable Applicative AlternativeMonadFix MonadPlusFunctorMonadShowEqRandom PrintfArgDataBitsIx ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq PrintfArgDataStorable PrintfArgDataStorable PrintfArgDataStorable PrintfArgDataStorableRandom PrintfArgDataStorableBitsIxEqFunctor Applicative ApplicativeMonadFixShowEqIxBoundedShowReadEnumOrdEqRandom PrintfArgDataStorableShowEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEqTypeable ExceptionShowEqEq Typeable2 HasResolution HasResolution ExceptionTypeableShowRandom PrintfArgDataStorableShowShowEqShowEqShowEqReadShowEnumOrdEqTypeable Typeable1Random PrintfArgIsCharDataStorableIx Typeable1 ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeable RealFloatRealFracFloating FractionalRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeable RealFloatRealFracFloating FractionalRealStorableEnumNumOrdEq ReadShowTypeable RealFloatRealFracFloating FractionalRealStorableEnumNumOrdEq ReadShowTypeableRealStorableEnumNumOrdEq ReadShowTypeableRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEqRandomDataStorableIxShowOrdEqMonoidBoundedShowReadOrdEqMonoidBoundedShowReadOrdEqArrow ArrowChoice ArrowApply ArrowLoopCategoryMonoidDataEqOrdIx ByteCount%CString CStringLenCWString CWStringLen ClockTickConIndexDeviceID EpochTimeFileIDFileMode FileOffsetFilePathFinalizerEnvPtr[ FinalizerPtr8IOError*IPrLimitMicroPicoPrecProcessGroupID ProcessIDRationalReadS SampleVar}ShowSbStringU[]Char[]Char[]CharaMVar(,)IntMVaraa[]Char[](,)a[]CharRatioIntegerCPidCPidIntFixedE12FixedE6CLong(,)IntInt IOExceptionaFunPtrPtraIO()envaFunPtrPtrenvPtraIO()[]CharCOffCModeCInoCTimeCDevIntCClock(,)PtrCWcharIntPtrCWchar(,)PtrCCharIntPtrCCharCSize(V^["^aXb[TcJd2Ge Df@g?h=i9jd9k)9l6m3n0o.p*q*r1&s!t uSvwziplistZipList#eo6raDitem#o*d1e8IOModepKamp\ecdjamvo}nad WrappedMonadrrow WrappedArrowonad WrappedMonadrrow$ WrappedArrowr=dDWord#1368pptwr~WordPtrWord84Word642Word326Word16Word#akWeakWorder&s-i4o;nBVersionn5psdekrriynterruptAsyncExceptionpercaselet ter GeneralCategorydfiAqHuOeVUniqueemfryflowArithExceptioninedelementArrayExceptionhCirvOy%c2p1e8acrDeKpRTypeRepbjlqexTypeable12 34567 Typeable7 Typeable6 Typeable5 Typeable4 Typeable3 Typeable2 Typeable1o9n@TyConaVr]TVar#pTVar#aversable Traversabletlecasel ett e'r.GeneralCategoryrJeQaXd_b d fa i0 krstatus ThreadStatusunning ThreadStatusi l l e d AsyncExceptiond7 ThreadId#N  ThreadId#ih no iv s} h e d  ThreadStatusi e d  ThreadStatusl o c k e d  ThreadStatusa%et%h %o$p#t!uY!y1!m8!b?!oF!lM!Lexemem!re!rl!os!gz!a!t!e!GeneralCategorySumSTa"d"m"o"r!eW"i!n!g!Stringc%"r "e"p"DataRepo,"n3"s:"tA"rH" ConstrRepfr"pc"STRepSTRefr"a"b"l"e"StorableSTMg"e"n"StdGenb#cB#r#t"e## #State#r##a*#y1#STArraykI#oP#vW#e^#re#fl#ls#oz#w#AsyncExceptionl#e#n#p#t#r# StablePtra#m#e# StableNamea$c$e$i$n$g!$c($o/$m6$b=$iD$nK$iR$nY$g`$mg$an$ru$k|$GeneralCategoryGeneralCategorym$e$e$x$c$e$p$t$i$o$n$ SomeExceptionoK%u%t%d$%o+%w2%n9% ConsoleEventwR%Showse%ShowSe{%k%f%m%o%d%e%SeekModer%o%m%e%n%d%SeekModem%p%l&e &v&a&r& SampleVara)ec&iB&gI&hP&tW&Eitherap(c'l@'q&t~&u&r&n&i&n&o&r&d&e&r&ArgOrdera$'u&i&r&e&o&r'd'e'r'ArgOrderr+'g2'ArgDescraG'tN'iU'v\'ec'sj'eq'ex'k'SeekModec*(s'u'p'd'e'r'r'o'r' RecUpdErrore'l'e'r(r(o(r( RecSelErroro1(n8(e?(rF(rM(oT(r[( RecConErrord)l|(Realf(w(o(r(l(d( RealWorldl(r(a(c(RealFraco(a(t) RealFloatReadm)p)s})w9)r@)iG)tN)eU)m\)oc)dj)eq)IOModeReadSReadPr)e)c)ReadPreco)d)e)IOModen9*t)Lexemei)o*Ration*a *l'*Rationald@*oG*mN*Randomgc*ej*nq* RandomGens*e*m*QSemn*QSemNa-e,i,o,r+t*u*n*c*Lexemer+Ptre},i+o+cQ+d++u2+c9+t@+ProducteX+s_+sf+g+ir+dy+ ProcessIDr+o+u+p+i+d+ProcessGroupIDn,v+a+t+e+u+s+e,GeneralCategoryt ,f',a\,t3,y:,pA,eH, PrintfTyperc,gj, PrintfArgc,f,i,x,FixityPreco,l,Poolc,o,Picor,m,u,t-e -ArgOrderr-t&-t--e4-r;-nB-mI-aP-tW-c^-he-fl-as-iz-l-PatternMatchFaila-g-r-a-p-h-s-e-p-a-r-a-t-o-r.GeneralCategoryp/r/tm.v/.e6.r=.fD.lK.oR.wY.ArithExceptionht.e{.r.lc/n+/p.s.y.m.b.o.l.GeneralCategoryu.n.c.t.u.a.t/i/o/n/GeneralCategoryu2/m9/b@/eG/rN/GeneralCategoryej/tq/tx/e/r/GeneralCategoryd/Orde/r/i/n/g/Orderingee0t/aI0d0i/o0n 0OptDescre"0s)0c00r70OptDescrrP0gW0ArgDescrnl0ps0uz0n0c0t0u0a0t0i0o0n0GeneralCategorye&3o0u0m0Numa 3b2me2n1r1t1a?1h1i&1n-1g41MaybesF1sM1iT1g[1nb1ei1dp1GeneralCategorye1p1DataReps 2t1e1r1m1i1n1a1t1i1o1n1NonTerminationp2a2c2i&2n-2g42m;2aB2rI2kP2GeneralCategoryel2ts2hz2o2d2e2r2r2o2r2 NoMethodErroru2f2f2e2r2i2n2g2 BufferModer3g3ArgDescrs-3t43e;3dB3aI3tP3oW3m^3ie3cl3as3lz3l3y3NestedAtomicallya6i5o4u3v3a3r3MVar#3MVar#t3a3b4l 4e4av4b4y#4t*4e14a84r?4rF4aM4yT4#[4MutableByteArray#r}4r4a4y4#4 MutableArray#dN5n4a4o4i4d4Monoidd4Monadf.5p5l 5u5s5 MonadPlusi55x<5MonadFixiU5f\5ic5ej5rq5l5s}5y5m5b5o5l5GeneralCategorye5t5t5e5r5GeneralCategoryc5r5o6Microt:6y6b$6e+6MaybehA6sH6yO6mV6b]6od6lk6GeneralCategorya 9ep8i7o6gx7s7w6e6r6c6a6s6e6l6e6t6t6e6r6GeneralCategorys7o7f%7p,7r37e:7cA7iH7sO7iV7o]7nd7ArithExceptiono7f7f7 ConsoleEventmS8n7e7b 8s7e7p7a7r7a7t7o7r7GeneralCategoryu8f8f 8e'8r.8i58n<8gC8 BufferModeiZ8ta8Limitf8t8x8e8m8e8Lexemet8e8r8n8u8m8b8e8r8GeneralCategoryt9Eithers9t9Lastl09e79i>9sE9lL9iS9Kleisliuk9sr9ty9Maybed=gt=n3;o/:p:s9x9Ixc9s9t9r9i9n9g9IsStringh9a:r :IsCharr":IPrIOe:mg:rJ:eQ:fX:IORefon:du:e|:IOModer:x:c:e:p:t:i:o:n: IOExceptionr:o:r:IOErrort ;y;p;e; IOErrorTyped=f<i<tI;Int #<1s<3]<6G<89<c<e;p;r;e;p;DataRept;r;IntPtrg;e;r;a;l;Integralr;Integero<n<s<t#<r*< ConstrRepInt84N<Int642d<Int326z<Int16Int#t<i<a<l<q<u<o<t<e<GeneralCategoryi<x<Fixitye =x=o=u!=t(=o/=f6=b==oD=uK=nR=dY=s`=ArrayExceptionn{=o=r=e=Handlere=n=t=Lexemea}>e#>p=r=i=n=t=f=t=y>p>e> HPrintfTypea*>p1>o8>v?>eF>rM>fT>l[>ob>wi>AsyncExceptionn!?s>h>r>e>s>o>l>u>t>i>o>n> HasResolutiont>a>b?l?e? HashTabled(?l/?e6?Handlepa?rP?Handleroh?so?nv? HandlePosne?n?e?r?a?l?c?a?t?e?g?o?r?y?GeneralCategorydDi BlvAo@r|@u%@n,@cV@p8@t?@rF@FunPtrt]@od@rk@Functora@c@t@i@o@n@a@l@ FractionallAAr@eAm@a@t@GeneralCategoryi AgAnApAt&Ar-A ForeignPtrdHAaOAbVAl]AedAFoldableo}AaAtAcAiArAeApADataRepnAgAFloatingoAnAsAtArA ConstrReplHCn|Br_BxBeIBi+Bt2By9BFixitydPBFixedsfBtmBFirstaBlBiBqBuBoBtBeBGeneralCategoryzBeBrBe CpBtBrB FinalizerPtrnCvCp!Ct(Cr/CFinalizerEnvPtreOCiCmCoCpeCalCtsChzCFilePathfCfCsCeCtC FileOffsetoCdCeCFileModedCFileIDFd 1G6GiFnPFo=FpEqErExIfInHvHiHcHeHiHdHDeviceIDoHrHmHaHlIArithExceptionaIu#Il*It1IHandleriEImLIaSIlZInaIuhImoIbvIe}IrIGeneralCategorydIlIoIcIkIDeadlocks?JtIaIDatar JtIyJpJeJDataTypee'Jp.JDataRephFJpMJuTJn[JcbJtiJupJawJt~JiJoJnJGeneralCategoryaTcSdjSfRhRiTRj RlPmPoNpkNs-Mt MuKwJc^KsKtKrKiKnKg$KCWStringl;KeBKnIK CWStringLenheKalKrsKCWcharcLi}Ll-LrKsKhKoKrKtKCUShortrKeKnKcKyKsKyKmLb LoLlLGeneralCategorylWLo9Ln@LgGLCULongo^LneLglLCULLongnLtLCUIntmLpLtLrLCUIntPtraLxLCUIntMaxhLaLrLCUChariMmMeMCTimecFNh!NiMsMtHMrOMiVMn]MgdMCStringlzMeMnM CStringLeniMzMeMCSsizegMzMeMCSizeaMtMoMmMiNc N CSigAtomico(Nr/Nt6NCShorthMNaTNr[NCSChariNtwNr~NdNiNfNfNCPtrdiffdNCPidfPmyPnNiKPnOs)OtNrNoNlNGeneralCategorycO ConsoleEventoOt5OConstrIOConstrr^OeeOplO ConstrReplOeOeOvOeOnOtO ConsoleEventeOcOtOoOrOpOuOnOcPt PuPaPt!Pi(Po/Pn6PGeneralCategorynRPdYPe`PxgPConIndexpPlPePxPComplexfPCOffoPdPePCModedQlQoPcQnzQsQeQ ConsoleEventpQu&Qn-Qc4Qt;QuBQaIQtPQiWQo^QneQGeneralCategorygQCLongkQtQiQcQkQ ClockTickoQnQgQCLLongoQuQbRlReRCLDoublem'Rp.Rb5RuUnEUdLUeSUdZUBoundedlrUBooloUcUkUb.XeUrUeUaUsUoUnU BlockReasondUiWoUnUb{Wd/WeVfVmiVoStdGen instance of RandomGen has a genRange of at least 30 bits. The result of repeatedly using next should be at least as statistically robust as the Minimal Standard Random Number Generator described by [System.Random#Park, System.Random#Carta]. Until more is known about implementations of split, all we require is that split deliver generators that are (a) not identical and (b) independently robust in the sense just given. The Show and Read instances of StdGen provide a primitive way to save the state of a random number generator. It is required that read (show g) == g. In addition, read may be used to map an arbitrary string (not necessarily one produced by show) onto a value of type StdGen. In general, the read instance of StdGen has the following properties:
  • It guarantees to succeed on any string.
  • It guarantees to consume only a finite portion of the string.
  • Different argument strings are likely to result in different results.
splitsplit :: RandomGen g => g -> (g, g)hh RandomGengg(,)gg setStdGen setStdGen :: StdGen -> IO ()^iIiStdGenIO())Sets the global random number generator. randomsrandoms :: (Random a, RandomGen g) => g -> [a]jiRandoma RandomGengg[]arandomRsrandomRs :: (Random a, RandomGen g) => (a, a) -> g -> [a]jjRandoma RandomGeng(,)aag[]a randomRIO randomRIO ::  Random a => (a, a) -> IO a;kkRandoma(,)aaIOarandomRrandomR :: (Random a, RandomGen g) => (a, a) -> g -> (a, g)kkRandoma RandomGeng(,)aag(,)agrandomIOrandomIO ::  Random a => IO aGl0lRandomaIOa RandomGenclass  RandomGen glThe class RandomGen provides a common interface to random number generators. Minimal complete definition: next and split. randomrandom :: (Random a, RandomGen g) => g -> (a, g)momRandoma RandomGengg(,)agRandomclass Random amWith a source of random number supply in hand, the Random class allows the programmer to extract random values of a variety of types. Minimal complete definition: randomR and random. nextnext :: RandomGen g => g -> (Int, g)on RandomGengg(,)Intg newStdGen newStdGen ::  IO StdGendoUoIOStdGenxApplies split to the current global random generator, updates it with one of the results, and returns the other. mkStdGenmkStdGen :: Int -> StdGen6p&pIntStdGenThe function mkStdGen provides an alternative way of producing an initial generator, by mapping an Int into a generator. Again, distinct arguments should be likely to produce distinct generators.  getStdRandom getStdRandom :: (StdGen -> (a, StdGen)) -> IO aqlqStdGen(,)aStdGenIOa5Uses the supplied function to get a value from the current global random generator, and updates the global generator with the new generator returned by the function. For example, rollDice gets a random integer between 1 and 6:
rollDice :: IO Int
rollDice = getStdRandom (randomR (1,6))
 getStdGen getStdGen ::  IO StdGens sIOStdGen)Gets the global random number generator. genRangegenRange :: RandomGen g => g ->  (Int, Int)ss RandomGengg(,)IntIntrandompackage randomsFrandom number library This package provides a random number library. Randommodule System.RandomitlThis library deals with the common task of pseudo-random number generation. The library makes it possible to generate repeatable results, by starting with a specified initial random number generator, or to get different results on each run by using the system-initialised generator or by supplying a seed from some other source. The library is split into two layers:
  • A core random number generator provides a supply of bits. The class RandomGen provides a common interface to such generators. The library provides one instance of RandomGen, the abstract data type StdGen. Programmers may, of course, supply their own instances of RandomGen.
  • The class Random provides a way to extract values of a particular type from a random number generator. For example, the Float instance of Random allows one to generate random values of type Float.
This implementation uses the Portable Combined Generator of L'Ecuyer [System.Random#LEcuyer] for 32-bit computers, transliterated by Lennart Augustsson. It has a period of roughly 2.30584e18. xSystemRandomxrandom1.0.0.1Dhttp://hackage.haskell.org/packages/archive/random/1.0.0.1/doc/html/Ahttp://hackage.haskell.org/cgi-bin/hackage-scripts/package/random