HOOGxva d e g i klm n o pr s t wxPu~tsmimj()?->AllAnyArithExceptionArrayExceptionAsyncExceptionBoolw BufferModee BufferStateaCCharCClockCDevCDouble\CFloatCInoCIntsCIntMax+CIntPtrCLDoubleCLLongBCLongCModeCOffjCPid"CPtrdiffCSCharCShortJ CSigAtomicCSizeCSsizerCTime@CUCharCUIntCUIntMaxhCUIntPtr CULLongCULongCUShortHCWcharChanCharComplex ConsoleEventConstry ConstrReppDataRepgDataTypeSDouble Dynamic E12 E6 Errno Exception ExitCode FDType FdU FixityL Float GeneralCategory Handle HandlePosn HandleType HashData IOz IOErrorTypeq IOExceptionh IOModeN Id9 Inserts5 Int Int16 Int32; Int64 Int8 IntPtrQ Integer Lexeme Maybe Ordering Pn QSemd QSemNZ ReadPA ReadPrec( STM SeekMode StableNameStdGenTVarThreadIdTimeoutTyConTypeRepUniqueVersionsWeakhWordWord16Word32uWord64$Word8WordPtrZipListv[::]g[] TraversableFoldableMonadFix Applicative Alternative MonadPlusFunctorMonadFunctorMonadFunctor Applicative ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq PrintfArgStorableDataShowNumRealEnumIntegralBoundedIxReadBitsOrdEq PrintfArgStorableDataEqOrdNumEnumIntegralBitsShowRealBoundedIxRead PrintfArgStorableDataNumEnumIntegralBitsShowRealBoundedIxReadOrdEq PrintfArgStorableDataShowNumRealEnumIntegralBoundedIxReadBitsOrdEq PrintfArgStorableDataShowNumRealEnumIntegralBoundedIxReadBitsOrdEq Typeable1EqOrdShowReadTypeableOrdEqDataDataEqTypeableDataShowEqOrdTypeable Typeable1 RandomGenShowRead Typeable1ShowReadEnumIxOrdEq Typeable1FunctorMonadFunctorMonad MonadPlusFunctorMonad MonadPlusTypeableTypeableMonad MonadPlus MonoidDataReadShowBoundedEnumIxOrdEq TraversableFoldableMonadFix Applicative AlternativeFunctorMonad MonadPlusShowEqRead Random PrintfArgBitsDataReadEqOrdNumEnumShowIxRealIntegral ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq PrintfArgStorableDataShowNumRealEnumIntegralBoundedIxReadBitsOrdEq PrintfArgStorableDataEqOrdShowNumEnumIntegralReadBitsRealBoundedIx PrintfArgStorableDataShowNumEnumIntegralReadBitsRealBoundedIxOrdEq PrintfArgStorableDataShowNumRealEnumIntegralBoundedIxReadBitsOrdEqRandom PrintfArgBitsStorableDataReadShowNumBoundedEnumIxRealIntegralEqOrdEqFunctor ApplicativeShowReadEnumIxOrdEqEqShowEqShowMonadFix ApplicativeFunctorMonadShowEqShowEqShowDataEqShowIxBoundedShowReadEnumOrdEqRandom PrintfArgStorableDataEqOrdNumReal FractionalRealFracFloating RealFloatShowEnumReadShowEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEqEqShowReadOrdEqShowEqEq HasResolution HasResolutionTypeableShowRandom PrintfArgStorableDataEqOrdNumReal FractionalFloatingRealFrac RealFloatShowEnumReadTypeableDataShowShowEqShowEqShowEqReadShowEnumOrdEqTypeable Typeable1 Random PrintfArgIsCharStorableDataReadShowBoundedEnumIxEqOrd 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 ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEqEqShowReadOrdEq RandomStorableDataReadShowBoundedEnumIxOrdEqShowOrdEqShowOrdEqShowOrdEqMonoidBoundedShowReadOrdEqMonoidBoundedShowReadOrdEqArrow ArrowChoice ArrowApply ArrowLoop MonoidDataReadShowBoundedEnumIxEqOrdq4 ByteCountCDirCDirentCFLockCGroupCLconvCPasswd CSigactionCSigsetCStatCStringy CStringLen^CTermiosYCTmTCTmsOCUtimbufJCUtsnameECWString5 CWStringLen ClockTickConIndex DeviceID EpochTimeFDFileIDFileMode FileOffsetFilePathFinalizerEnvPtr FinalizerPtr{GenerickGenericBgGenericMWGenericQLGenericRAGenericT8HandlePosition.IOError IPrLimitMicroPicoPrecProcessGroupID ProcessIDRational RawBufferReadStSTRepG SampleVar%ShowS String[]Char[]Char[]CharaMVar(,)IntMVarasaState#s(#,#)State#saa[]Char[](,)a[]CharMutableByteArray# RealWorldRatioIntegerCPidCPidIntFixedE12FixedE6CLong(,)IntInt IOExceptionIntegeraammararmamaacacaaFunPtrPtraIO()envaFunPtrPtrenvPtraIO()[]CharCOffCModeCInoCIntCTimeCDevIntCClock(,)PtrCWcharIntPtrCWchar()()()()()(,)PtrCCharIntPtrCChar()()()()()()()()()CSize(ns::s[salbic]d-YeVfPgmNhKi EjDkDlAm>n;o8p|4qE4r-s't$u!v!wzFiMpTl[ibsitpZipList#!1!3~!6d!8R!e"!oP ra^iteb*hmodeIOModeand le HandleTypeu1f8f?eFrM BufferStatepea" mpve}damonad WrappedMonadrrow WrappedArrowon a d  WrappedMonadr) r0 o7 w>  WrappedArrowrW d^ Word#!1 3 6 8 p t r WordPtrWord84 Word64# Word64#2 Word326!Word16Word#a)!k0!Weak#C!Weak##Y!Word84k!#r!Word642!#!Word326!#!Word16Worde!r!s!i!o!n!Versionn"pJ"s"e"r"e"r$"r+"o2"r9" IOErrorTypepQ"eX"r_"cf"am"st"e{"l"e"t"t"e"r"GeneralCategoryd$i#s"aX#u"p"p"o"r"t"e#d#o#p#e#r$#a+#t2#i9#o@#nG# IOErrorTypet_#if#sm#ft#i{#e#d#c#o#n#s#t#r#a#i#n#t#s# IOErrorTypeq$t#Unitu$e$Uniquee&$fb$r2$f9$l@$oG$wN$ArithExceptionii$np$ew$d~$e$l$e$m$e$n$t$ArrayExceptionhL'i&r$&v&y$c%p$e$a%r$e%p %TypeRepb#%l*%e1%Typeable1%2%3%4%5%6y%7f% Typeable7 Typeable6 Typeable5 Typeable4 Typeable3 Typeable2 Typeable1o%n%TyCona&r&TVaraA&u0&e7&BoolvH&eO&rV&s]&ad&bk&lr&ey& Traversablem't&l&e&c&a&s&e&l&e&t&t&e&r&GeneralCategorye 'e'x'p'i&'r-'e4'd;' IOErrorTyperS'eZ'aa'dh'i'kt'i{'l'l'e'd'AsyncExceptiond'ThreadId#' ThreadId##-aa-ex,h,pa+t(u|(y(m[(s(t(e (m'(e.(r5(r<(oC(rJ( IOErrorTypebb(oi(lp(Lexemem(r(r(o(g(a(t(e(GeneralCategorySumSTa7*d*m*o)r(ez)i)n )g)StringcH)r-)e4)p;)DataRepoO)nV)s])td)rk) ConstrRepa)f)p)t)STretSTRepSTRefm)FDTyper)a)b)l)e)StorableSTMg*e *n'*StdGenb*c*rk*tM*eT*#[*State#rr*ay*y*STArrayk*o*v*e*r*f*l*o*w*AsyncExceptionl*e*n8+p*t+r + StablePtr#$+ StablePtr#a?+mF+eM+ StableNameah+co+e+i{+n+g+c+o+m+b+i+n+i+n+g+m+a+r+k+GeneralCategoryGeneralCategoryoO,u,t!,d(,o/,w6,n=, ConsoleEventwV,Showsi,ShowSe,m,i,c,l,o,s,e,d,h,a,n,d,l,e, HandleTypek,f)-m-o -d-e-SeekModer0-o7-m>-eE-nL-dS-SeekModemh-po-lv-e}-v-a-r- SampleVarIntegera,3e-i-g-h-t-Eithera1cA0g/l/qB/s].t .u.r.n.i%.n,.o3.r:.dA.eH.rO.ArgOrderod.uk.rr.cy.e.b/e.v.a.n.i.s.h.e.d. IOErrorTypex.h.a.u.s.t.e/d / IOErrorTypeu#/s*/y1/ IOErrorTypea/uN/iU/r\/ec/oj/rq/dx/e/r/ArgOrderr/g/ArgDescra/t/i/v/e/s/e/e/k/SeekModeu0l 0a0r0f 0i'0l.0e50FDTypec0s0uR0pY0d`0eg0rn0ru0o|0r0 Exceptione0l0e0r0r0o0r0 Exceptiono0n0e0r0r0o0r1 Exceptiond1l1Realfe1w61o=1rD1lK1dR1 RealWorldl1rq1ax1c1RealFraco1a1t1 RealFloatReadb2h2m2pp2sa2w1r1i1t1e2h.2m 2o2d2e"2IOModea52n<2dC2lJ2eQ2 HandleTypeReadSReadPr2e2c2ReadPreco2d2e2IOModea2n2d2l2e2 HandleTypeu2f3f 3e3r3 BufferStaten3t3w=3bx3dI3eP3vW3i^3ce3el3FDTypeu3f3f3e3r3 RawBufferLexemei3o3Ration3a3l3Rationald4o4m4Randomg$4e+4n24 RandomGensL4eS4mZ4QSemnm4QSemNa7e6i6o6r4t4u4n4c4Lexemer4Ptre6i5o4cg5dA5t4o4c4o5l 5e5r5r"5o)5r05 IOErrorTypeuH5cO5tV5Producten5su5s|5g5i5d5 ProcessIDr5o5u5p5i5d5ProcessGroupIDn/6v5a5t5e6u 6s6e6GeneralCategoryt66f=6ar6tI6yP6pW6e^6 PrintfTypery6g6 PrintfArgc6f6i6x6FixityPreco6l6Poolc6o6Picor7m 7i57u7t 7e'7ArgOrders<7sC7iJ7oQ7nX7d_7ef7nm7it7e{7d7 IOErrorTyper 8t7t7e7r7n7m7a7t7c7h7f7a7i7l7 Exceptiona8g8r8a%8p,8h38s:8eA8pH8aO8rV8a]8td8ok8rr8GeneralCategoryOpaqueb;p:rJ:t8v8e8r8f8l8o8w8ArithExceptionh8e8r8e:l9n9pR9s9y!9m(9b/9o69l=9GeneralCategoryuY9n`9cg9tn9uu9a|9t9i9o9n9GeneralCategoryu9m9b9e9r9GeneralCategorye9t9t9e:r:GeneralCategoryr$:r+:o2:r9: IOErrorTypedQ:Ordec:rj:iq:nx:g:Orderinga;e;t:a:d:i:o:n:OptDescre:s:c:r:OptDescrr;g ;ArgDescrn ;p';u.;n5;c<;tC;uJ;aQ;tX;i_;of;nm;GeneralCategoryq;u;e;Opaquej;e;c;t;Objecteh>o;u;m;NumaL>b>m=n<r<s<t<aI<h)<i0<n7<g><MaybesP<sW<i^<ge<nl<es<dz<GeneralCategoryu<c<h<t<h<i<n<g< IOErrorTypee<p<DataRepsT=t<e=r =m=i=n"=a)=t0=i7=o>=nE= Exceptionp[=ab=ci=ip=nw=g~=m=a=r=k=GeneralCategorye=t=h=o=d=e=r=r=o=r= Exceptionu >f>f>e >r'>i.>n5>g<> BufferModerS>gZ>ArgDescrso>tv>e}>d>a>t>o>m>i>c>a>l>l>y> ExceptionasAiOAo@u$?v>a>r?MVar#?MVar#t+?a]?v7?a>?rE?#L?MutVar#bd?lk?er?a?b~?y?t?e?a?r?r?a?y?#?MutableByteArray#r?r?a?y?#? MutableArray#d@n@aH@o*@i1@d8@MonoiddO@Monadf@ph@lo@uv@s}@ MonadPlusi@x@MonadFixi@f@i@e@r@lAs@y@m@b@o@lAGeneralCategoryeAt%At,Ae3Ar:AGeneralCategorycVAr]AodAMicrotAyAbAeAMaybehAsAyAmAbAoAlAGeneralCategoryaDeCiCo BtAOrderinggBsBwBe#Br*Bc1Ba8Bs?BeFBlMBeTBt[BtbBeiBrpBGeneralCategorysBoBfBpBrBeBcBiBsBiBoBnBArithExceptionoBfBfC ConsoleEventmCn Ce'CbCs3Ce:CpACaHCrOCaVCt]CodCrkCGeneralCategoryuCfCfCeCrCiCnCgC BufferModeiCtCLimitfoDtDxCeCmDe DLexemet"De)Dr0Dn7Du>DmEDbLDeSDrZDGeneralCategorytvDEithersDtDLastlDeDiDsDlDiDKleisli#DuDsDtDMaybeInteger #K1K3K6lK8[Kd:KgKlJn GoEpEsZExNEIxcEsfEtmErtEi{EnEgEIsStringhEaErEIsCharrEIPrIOaFe6FmFrEeEfFIORefoFdFe&FIOModerFxBFcIFePFpWFt^FieFolFnsF IOExceptionrFoFrFIOErrortFyFpFeF IOErrorTyperFrFaFyFIOArraya+JdIfIiNIlEIrRgERFloatingo^RneRslRtsRrzR ConstrRepFloat#lSn SrRxReRiRtRyRFixitydRFixedsRtRFirstaSlSiWSq&Su-So4St;SeBSGeneralCategoryz^SeeSrlSeSpxStSrS FinalizerPtrnSvSpStSrSFinalizerEnvPtreShTiTmXTo!TpSaTtThTFilePathf(Tf/Ts6Te=TtDT FileOffseto_TdfTemTFileModedTFileIDaTnTdTlTeTHandleekUfUgTeTnTeTrTiTcUFFFormatiHUoUr!Um(Ua/Ut6UFFFormatxOUeVUd]UFFFormatxrUpyUoUnUeUnUtUFFFormatFDFdtUyUpUeUFDTypelUsUeUBoolFloat 1Y6 YiXnKXo8XpWqWrWx@VcGWiLVtSVc WeVfVsiVupVcwVc~VeVsVsVExitCodeaViVlVuVrVeVExitCodexVcVeVpVtViWo WnW Exceptiono'Wd.We5WExitCodeeNWpUWt\WicWojWnqW ExceptionrWnWoWrWcWaWlWlW ExceptionoWErrnoOrderingEqoWcXh XtXiXmXe%X EpochTimef?XLexemecXdqXu\XmcXEnumoxXEndolXoXsXiXnXgXmXaXrXkXGeneralCategorytXhXeXrXEitherE62 YE12#u]a\eU[iZo~ZuZyRYnYYaYeYijYoqYexYrYrYoYrY IOErrorTypexYcYeYpYtYiYoYnY ExceptionmYiYcZDynamicaiZpZl%Ze,Zx3Zh:ZaAZnHZdOZlVZe]ZHandlelpZDualuZbZlZeZDouble#ZDouble#r[vZiZdZeZbZyZzZeZr[o [ArithExceptione&[c-[t4[o;[rB[yI[FDTypea`\c\f[n[vp[iw[c~[e[i[d[DeviceIDo[r[m[a[l[ArithExceptiona[u[l[t[Handleri \m\a\l!\n(\u/\m6\b=\eD\rK\GeneralCategorydg\ln\ou\c|\k\ Exceptions ]t\a\DataDatar\t\y\p\e\DataTypee\p\DataReph]p]u!]n(]c/]t6]u=]aD]tK]iR]oY]n`]GeneralCategoryDouble#ia^icidhfggghgigjfl4emeocpbs`tY`uf^w]cA^s]t]r]i]n^g^CWStringl^e%^n,^ CWStringLenhH^aO^rV^CWcharc4`i_l}_r_s^t^i^s^n^a^m^e^CUtsnamem^b^u^f^CUtimbufh^o^r_t _CUShortr"_e)_n0_c7_y>_sE_yL_mS_bZ_oa_lh_GeneralCategoryl_o_n_g_CULongo_n_g_CULLongn_t_CUIntm`p_t_r`CUIntPtra`x"`CUIntMaxh;`aB`rI`CUChare`i`mj`CTms|`CTmsm`e`CTimer`m`i`o`s`CTermioscibhDbiasfat`aParai anagaCStringl.ae5andpEduLdnSdcZdtaduhdaodtvdi}dodndGeneralCategoryndddedxdConIndexpdldedxdComplexfeCOffoedee%eCModecfdfl_foJec)fnfs[eebe ConsoleEventdep~eueneceteueaeteieoeneGeneralCategoryheaenedeleef HandleTypegfCLongk0ft7fi>fcEfkLf ClockTickoffnmfgtfCLLongofufbflfefCLDoubleofnfvfCLconvmfpfbfuffgCJmpBufngo{gt%gCIntm\gp=gtDgrKgCIntPtracgxjgCIntMaxCInoagngrgChar#gChar#ChanrgogugpgCGroupighl&hp hohshCFposo-haPhc9hk@hCFLocktWhCFloatlnheuhCFileehihohuhbhlhehCDoublerhCDirehnhthCDirentviCDevhAilio#ic*ik1iCClockaHirOiCCharteiclihsiHandlerCharillko\kr5ku*jyitieiaicioiuiniti ByteCountrirjajyj#j ByteArray#f1jf8je?jrFjBufferljmjsejtljasjtzjej BufferStateojdjej BufferModeijsjtj BufferListcknjijlk BufferListoknks%k BufferListepdEpeLprSpArgOrderelpsspczprpArgDescrppeplpipcpaptpipvpep Applicativenpdph'qmqo qdqeqIOModea.qn5qdStdGen 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)~} RandomGengg(,)gg setStdGen setStdGen :: StdGen -> IO ()v~a~StdGenIO())Sets the global random number generator. randomsrandoms :: (Random a, RandomGen g) => g -> [a])~Randoma RandomGengg[]arandomRsrandomRs :: (Random a, RandomGen g) => (a, a) -> g -> [a]Randoma RandomGeng(,)aag[]a randomRIO randomRIO ::  Random a => (a, a) -> IO aS-Randoma(,)aaIOarandomRrandomR :: (Random a, RandomGen g) => (a, a) -> g -> (a, g)ƀRandoma RandomGeng(,)aag(,)agrandomIOrandomIO ::  Random a => IO a_HRandomaIOa RandomGenclass  RandomGen gThe class RandomGen provides a common interface to random number generators. Minimal complete definition: next and split. randomrandom :: (Random a, RandomGen g) => g -> (a, g)Randoma RandomGengg(,)agRandomclass Random aWith 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)- RandomGengg(,)Intg newStdGen newStdGen ::  IO StdGen|mIOStdGenxApplies split to the current global random generator, updates it with one of the results, and returns the other. mkStdGenmkStdGen :: Int -> StdGenN>IntStdGenThe 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 aStdGen(,)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 StdGen0!IOStdGen)Gets the global random number generator. genRangegenRange :: RandomGen g => g ->  (Int, Int)ۈ RandomGengg(,)IntIntrandompackage randomFrandom number library This package provides a random number library. Randommodule System.RandomlThis 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. SystemRandomrandom1.0.0.0Dhttp://hackage.haskell.org/packages/archive/random/1.0.0.0/doc/html/Ahttp://hackage.haskell.org/cgi-bin/hackage-scripts/package/random