I wrote ... > The following signature seems quite reasonable to me. > > type Seed = Int > getSeed :: IO Seed > setSeed :: Seed -> IO () > randomInt :: IO Int > randomInteger :: IO Integer > randomDouble :: IO Double I'm getting old ;-). Of course, `randomInteger' requires an additional parameter specifying the range of the random numbers. randomInteger :: (Integer, Integer) -> IO Integer Ralf
