name:                 random
version:              1.3.0
visibility:           public
id:                   random-1.3.0-23BW6tricnOKWC1NYRlV2o
key:                  random-1.3.0-23BW6tricnOKWC1NYRlV2o
license:              BSD-3-Clause
maintainer:           core-libraries-committee@haskell.org
synopsis:             Pseudo-random number generation
description:
    This package provides basic pseudo-random number generation, including the
    ability to split random number generators.

    == "System.Random": pure pseudo-random number interface

    In pure code, use 'System.Random.uniform' and 'System.Random.uniformR' from
    "System.Random" to generate pseudo-random numbers with a pure pseudo-random
    number generator like 'System.Random.StdGen'.

    As an example, here is how you can simulate rolls of a six-sided die using
    'System.Random.uniformR':

    >>> let roll = uniformR (1, 6)        :: RandomGen g => g -> (Word, g)
    >>> let rolls = unfoldr (Just . roll) :: RandomGen g => g -> [Word]
    >>> let pureGen = mkStdGen 42
    >>> take 10 (rolls pureGen)           :: [Word]
    [1,1,3,2,4,5,3,4,6,2]

    See "System.Random" for more details.

    == "System.Random.Stateful": monadic pseudo-random number interface

    In monadic code, use 'System.Random.Stateful.uniformM' and
    'System.Random.Stateful.uniformRM' from "System.Random.Stateful" to generate
    pseudo-random numbers with a monadic pseudo-random number generator, or
    using a monadic adapter.

    As an example, here is how you can simulate rolls of a six-sided die using
    'System.Random.Stateful.uniformRM':

    >>> let rollM = uniformRM (1, 6)                 :: StatefulGen g m => g -> m Word
    >>> let pureGen = mkStdGen 42
    >>> runStateGen_ pureGen (replicateM 10 . rollM) :: [Word]
    [1,1,3,2,4,5,3,4,6,2]

    The monadic adapter 'System.Random.Stateful.runStateGen_' is used here to lift
    the pure pseudo-random number generator @pureGen@ into the
    'System.Random.Stateful.StatefulGen' context.

    The monadic interface can also be used with existing monadic pseudo-random
    number generators. In this example, we use the one provided in the
    <https://hackage.haskell.org/package/mwc-random mwc-random> package:

    >>> import System.Random.MWC as MWC
    >>> let rollM = uniformRM (1, 6)       :: StatefulGen g m => g -> m Word
    >>> monadicGen <- MWC.create
    >>> replicateM 10 (rollM monadicGen) :: IO [Word]
    [2,3,6,6,4,4,3,1,5,4]

    See "System.Random.Stateful" for more details.

category:             System
abi:                  79aef07bad41537897da0254d52553ef
exposed:              True
exposed-modules:
    System.Random System.Random.Internal System.Random.Stateful

hidden-modules:
    System.Random.Array System.Random.Seed System.Random.GFinite

import-dirs:
    /usr/pkg/lib/aarch64-netbsd-ghc-9.10.1/random-1.3.0-23BW6tricnOKWC1NYRlV2o

library-dirs:
    /usr/pkg/lib/aarch64-netbsd-ghc-9.10.1/random-1.3.0-23BW6tricnOKWC1NYRlV2o

library-dirs-static:
    /usr/pkg/lib/aarch64-netbsd-ghc-9.10.1/random-1.3.0-23BW6tricnOKWC1NYRlV2o

dynamic-library-dirs: /usr/pkg/lib/aarch64-netbsd-ghc-9.10.1
data-dir:             /usr/pkg/share/aarch64-netbsd-ghc-9.10.1/random-1.3.0
hs-libraries:         HSrandom-1.3.0-23BW6tricnOKWC1NYRlV2o
depends:
    base-4.20.0.0-inplace bytestring-0.12.1.0-inplace
    deepseq-1.5.0.0-inplace mtl-2.3.1-inplace
    splitmix-0.1.1-EHhrmgvLIdE5MespWqgODX transformers-0.6.1.1-inplace

haddock-interfaces:
    /usr/pkg/share/doc/aarch64-netbsd-ghc-9.10.1/random-1.3.0/html/random.haddock

haddock-html:
    /usr/pkg/share/doc/aarch64-netbsd-ghc-9.10.1/random-1.3.0/html
