module Crypto.Random.Effect.AES
( runAESRNG
) where
import Control.Eff (Eff, SetMember, (:>))
import Control.Eff.Lift (Lift)
import Control.Eff.Reader.Strict (Reader)
import Control.Eff.State.Strict (State)
import Crypto.Random (EntropyPool)
import Crypto.Random.AESCtr (AESRNG)
import Crypto.Random.Effect (runRNG)
import Data.Typeable (Typeable)
deriving instance Typeable AESRNG
runAESRNG
:: SetMember Lift (Lift IO) r
=> Eff (State AESRNG :> Reader EntropyPool :> r) a -> Eff r a
runAESRNG = runRNG