crypto-rng-0.3.0.0: Cryptographic random number generator.
Safe HaskellNone
LanguageHaskell2010

Crypto.RNG.Unsafe

Description

Support for generation of non cryptographically secure random numbers for testing purposes.

Synopsis

CryptoRNG class

Monad transformer for carrying rng state

data RNGT m a Source #

Monad transformer with RNG state.

Instances

Instances details
MonadTrans RNGT Source # 
Instance details

Defined in Crypto.RNG.Unsafe

Methods

lift :: Monad m => m a -> RNGT m a #

MonadTransControl RNGT Source # 
Instance details

Defined in Crypto.RNG.Unsafe

Associated Types

type StT RNGT a #

Methods

liftWith :: Monad m => (Run RNGT -> m a) -> RNGT m a #

restoreT :: Monad m => m (StT RNGT a) -> RNGT m a #

MonadBase b m => MonadBase b (RNGT m) Source # 
Instance details

Defined in Crypto.RNG.Unsafe

Methods

liftBase :: b α -> RNGT m α #

MonadBaseControl b m => MonadBaseControl b (RNGT m) Source # 
Instance details

Defined in Crypto.RNG.Unsafe

Associated Types

type StM (RNGT m) a #

Methods

liftBaseWith :: (RunInBase (RNGT m) b -> b a) -> RNGT m a #

restoreM :: StM (RNGT m) a -> RNGT m a #

MonadError e m => MonadError e (RNGT m) Source # 
Instance details

Defined in Crypto.RNG.Unsafe

Methods

throwError :: e -> RNGT m a #

catchError :: RNGT m a -> (e -> RNGT m a) -> RNGT m a #

Monad m => Monad (RNGT m) Source # 
Instance details

Defined in Crypto.RNG.Unsafe

Methods

(>>=) :: RNGT m a -> (a -> RNGT m b) -> RNGT m b #

(>>) :: RNGT m a -> RNGT m b -> RNGT m b #

return :: a -> RNGT m a #

Functor m => Functor (RNGT m) Source # 
Instance details

Defined in Crypto.RNG.Unsafe

Methods

fmap :: (a -> b) -> RNGT m a -> RNGT m b #

(<$) :: a -> RNGT m b -> RNGT m a #

MonadFail m => MonadFail (RNGT m) Source # 
Instance details

Defined in Crypto.RNG.Unsafe

Methods

fail :: String -> RNGT m a #

Applicative m => Applicative (RNGT m) Source # 
Instance details

Defined in Crypto.RNG.Unsafe

Methods

pure :: a -> RNGT m a #

(<*>) :: RNGT m (a -> b) -> RNGT m a -> RNGT m b #

liftA2 :: (a -> b -> c) -> RNGT m a -> RNGT m b -> RNGT m c #

(*>) :: RNGT m a -> RNGT m b -> RNGT m b #

(<*) :: RNGT m a -> RNGT m b -> RNGT m a #

MonadIO m => MonadIO (RNGT m) Source # 
Instance details

Defined in Crypto.RNG.Unsafe

Methods

liftIO :: IO a -> RNGT m a #

Alternative m => Alternative (RNGT m) Source # 
Instance details

Defined in Crypto.RNG.Unsafe

Methods

empty :: RNGT m a #

(<|>) :: RNGT m a -> RNGT m a -> RNGT m a #

some :: RNGT m a -> RNGT m [a] #

many :: RNGT m a -> RNGT m [a] #

MonadPlus m => MonadPlus (RNGT m) Source # 
Instance details

Defined in Crypto.RNG.Unsafe

Methods

mzero :: RNGT m a #

mplus :: RNGT m a -> RNGT m a -> RNGT m a #

MonadThrow m => MonadThrow (RNGT m) Source # 
Instance details

Defined in Crypto.RNG.Unsafe

Methods

throwM :: Exception e => e -> RNGT m a #

MonadCatch m => MonadCatch (RNGT m) Source # 
Instance details

Defined in Crypto.RNG.Unsafe

Methods

catch :: Exception e => RNGT m a -> (e -> RNGT m a) -> RNGT m a #

MonadMask m => MonadMask (RNGT m) Source # 
Instance details

Defined in Crypto.RNG.Unsafe

Methods

mask :: ((forall a. RNGT m a -> RNGT m a) -> RNGT m b) -> RNGT m b #

uninterruptibleMask :: ((forall a. RNGT m a -> RNGT m a) -> RNGT m b) -> RNGT m b #

generalBracket :: RNGT m a -> (a -> ExitCase b -> RNGT m c) -> (a -> RNGT m b) -> RNGT m (b, c) #

MonadIO m => CryptoRNG (RNGT m) Source # 
Instance details

Defined in Crypto.RNG.Unsafe

Methods

randomBytes :: Int -> RNGT m ByteString Source #

random :: Uniform a => RNGT m a Source #

randomR :: UniformRange a => (a, a) -> RNGT m a Source #

type StT RNGT a Source # 
Instance details

Defined in Crypto.RNG.Unsafe

type StT RNGT a = StT (ReaderT RNGState) a
type StM (RNGT m) a Source # 
Instance details

Defined in Crypto.RNG.Unsafe

type StM (RNGT m) a = StM (ReaderT RNGState m) a

mapRNGT :: (m a -> n b) -> RNGT m a -> RNGT n b Source #

runRNGT :: RNGState -> RNGT m a -> m a Source #

withRNGState :: (RNGState -> m a) -> RNGT m a Source #

Instantiation of the initial RNG state

data RNGState Source #

The random number generator state.

newRNGState :: MonadIO m => Int -> m RNGState Source #

Create a new RNGState with a given seed.

Low-level utils

withRNG :: MonadIO m => RNGState -> (StdGen -> (a, StdGen)) -> m a Source #