-- |
-- Module    : System.Random.MWC.CondesedTable
-- Copyright : (c) 2012 Aleksey Khudyakov
-- License   : BSD3
--
-- Maintainer  : alexey.skladnoy@gmail.com
-- Stability   : experimental
-- Portability : portable
--
-- Monadic wrapper for 'System.Random.MWC.CondesedTable'.
module System.Random.MWC.CondensedTable.Monad (
    -- * Condensed tables
    MWC.CondensedTable
  , MWC.CondensedTableV
  , MWC.CondensedTableU
  , genFromTable
    -- * Constructors for tables
  , MWC.tableFromProbabilities
  , MWC.tableFromWeights
  , MWC.tableFromIntWeights
    -- ** Disrete distributions
  , MWC.tablePoisson
  , MWC.tableBinomial
  ) where

import Control.Monad.Primitive.Class (MonadPrim)
import qualified Data.Vector.Generic as G
import System.Random.MWC.Monad
import qualified System.Random.MWC.CondensedTable as MWC


genFromTable :: (MonadPrim m, G.Vector v a) => MWC.CondensedTable v a -> Rand m a
genFromTable tbl = toRand $ \g -> MWC.genFromTable tbl g
{-# INLINE genFromTable #-}