This is now **deprecated** and it is better to use the [random](https://hackage.haskell.org/package/random "well maintained") package as the source of randomness. Here's what you might have written before: ``` import qualified Data.Random as Random import qualified Data.Random.Distribution.Bernoulli as Bernoulli main :: IO () main = do x <- Random.sample $ Bernoulli.Bernoulli (0.5 :: Double) :: IO Double print x ``` And here's what you should write now (but there are many other options): ``` import qualified System.Random.Stateful as Random.Stateful import qualified Data.Random as Random import qualified Data.Random.Distribution.Bernoulli as Bernoulli import qualified Control.Monad.Reader as Reader main :: IO () main = do stdgen <- Random.Stateful.newIOGenM =<< Random.Stateful.newStdGen x <- Reader.runReaderT (Random.sample $ Bernoulli.Bernoulli (0.5 :: Double)) stdgen :: IO Double print x ```