{-| Module: Random Description: Lifted random value functions using the system random number generator. Copyright: © 2017 All rights reserved. License: GPL-3 Maintainer: Evan Cofsky Stability: experimental Portability: POSIX -} module Random (randomR, random) where import Unicode import System.IO (IO) import IO.Base import qualified System.Random as R -- | Generate an endless range of random numbers between @[a, a]@ -- inclusive. (This is 'R.randomRIO' lifted.) randomR ∷ (R.Random a, MonadBase IO m) ⇒ (a, a) → m a randomR = liftBase ∘ R.randomRIO -- | Generate an endless stream of values. (This is 'R.randomIO' lifted.) random ∷ (R.Random a, MonadBase IO m) ⇒ m a random = liftBase R.randomIO