module Data.Random.Source
( MonadRandom
( getRandomWord8
, getRandomWord16
, getRandomWord32
, getRandomWord64
, getRandomDouble
, getRandomNByteInteger
)
, RandomSource
( getRandomWord8From
, getRandomWord16From
, getRandomWord32From
, getRandomWord64From
, getRandomDoubleFrom
, getRandomNByteIntegerFrom
)
, monadRandom, randomSource
) where
import Data.Word
import Data.Random.Internal.Source
import Data.Random.Source.Internal.TH
$(randomSource
[d|
instance Monad m => RandomSource m (m Word8) where
getRandomWord8From = id
|])
$(randomSource
[d|
instance Monad m => RandomSource m (m Word16) where
getRandomWord16From = id
|])
$(randomSource
[d|
instance Monad m => RandomSource m (m Word32) where
getRandomWord32From = id
|])
$(randomSource
[d| instance Monad m => RandomSource m (m Word64) where
getRandomWord64From = id
|])
$(randomSource
[d| instance Monad m => RandomSource m (m Double) where
getRandomDoubleFrom = id
|])