{-
 -      ``Data/Random''
 -}
{-# LANGUAGE
    FlexibleContexts
  #-}

-- |Random numbers and stuff...
-- 
-- Data.Random.Source exports the typeclasses for entropy sources, and
-- Data.Random.Source.* export various instances and/or functions with which
-- instances can be defined.
-- 
-- Data.Random.Distribution exports the typeclasses for sampling distributions,
-- and Data.Random.Distribution.* export various specific distributions.
--
-- Data.Random.RVar exports the 'RVar' type, which is a probability distribution
-- monad that allows for concise definitions of random variables, as well as
-- a couple handy 'RVar's.

module Data.Random
    ( module Data.Random.Source
    , module Data.Random.Source.DevRandom
    , module Data.Random.Source.StdGen
    , module Data.Random.Source.PureMT
    , module Data.Random.Source.Std
    , module Data.Random.Distribution
    , module Data.Random.Distribution.Bernoulli
    , module Data.Random.Distribution.Beta
    , module Data.Random.Distribution.Binomial
    , module Data.Random.Distribution.Discrete
    , module Data.Random.Distribution.Gamma
    , module Data.Random.Distribution.Exponential
    , module Data.Random.Distribution.Normal
    , module Data.Random.Distribution.Poisson
    , module Data.Random.Distribution.Triangular
    , module Data.Random.Distribution.Uniform
    , module Data.Random.RVar
    ) where

import Data.Random.Source
import Data.Random.Source.DevRandom
import Data.Random.Source.StdGen
import Data.Random.Source.PureMT
import Data.Random.Source.Std
import Data.Random.Distribution
import Data.Random.Distribution.Bernoulli
import Data.Random.Distribution.Beta
import Data.Random.Distribution.Binomial
import Data.Random.Distribution.Discrete
import Data.Random.Distribution.Gamma
import Data.Random.Distribution.Exponential
import Data.Random.Distribution.Normal
import Data.Random.Distribution.Poisson
import Data.Random.Distribution.Triangular
import Data.Random.Distribution.Uniform
import Data.Random.RVar