Ok, I applied the github example to use Source.IO
import Data.Random import Data.Random.Source.IO logNormal :: Double -> Double -> RVar Double logNormal mu sigmaSq = do x <- normal mu sigmaSq return (exp x) main = sample (logNormal 5 1) >>= print
You can see in source Data.Random.Source.IO that it simply determines the appropriate instance for MonadRandom IO .
You can create a uniform random number from the list as
import Data.Random import Data.Random.Source.IO main = sample (randomElement [0..9]) >>= print
source share