-- QuickCheck >=2.7 includes the function
--
--     generate :: Gen a -> IO a
--
-- which can be used to run a QuickCheck generator as an IO instruction.
--
-- But the Chalmers computers have QuickCheck 2.5 by default. This module shows
-- how to define generate in QuickCheck <2.7.

import System.Random
import Test.QuickCheck
import Test.QuickCheck.Gen

generate :: Gen a -> IO a
generate g = do
    seed <- newStdGen
    return (unGen g seed 10)

test = do
    a <- generate (arbitrary :: Gen Int)
    b <- generate (arbitrary :: Gen Int)
    c <- generate (arbitrary :: Gen Int)
    sequence_ $ map print [a,b,c]