[project @ 2003-08-30 23:01:48 by ross]
[haskell-directory.git] / System / Random.hs
index 129e5a9..09a4a39 100644 (file)
@@ -46,6 +46,7 @@ import Prelude
 
 #ifdef __NHC__
 import CPUTime         ( getCPUTime )
+import Foreign.Ptr      ( Ptr, nullPtr )
 #else
 import System.CPUTime  ( getCPUTime )
 import System.Time     ( getClockTime, ClockTime(..) )
@@ -55,23 +56,19 @@ import System.IO.Unsafe ( unsafePerformIO )
 import Data.IORef
 import Numeric         ( readDec )
 
-#ifdef __GLASGOW_HASKELL__
-import GHC.IOBase      ( stToIO )
-#endif
-
 -- The standard nhc98 implementation of Time.ClockTime does not match
 -- the extended one expected in this module, so we lash-up a quick
 -- replacement here.
 #ifdef __NHC__
 data ClockTime = TOD Integer ()
-foreign import ccall "time.h time" readtime :: Int -> IO Int
+foreign import ccall "time.h time" readtime :: Ptr () -> IO Int
 getClockTime :: IO ClockTime
-getClockTime = do t <- readtime 0;  return (TOD (toInteger t) ())
+getClockTime = do t <- readtime nullPtr;  return (TOD (toInteger t) ())
 #endif
 
 {- $intro
 
-The "Random" library deals with the common task of pseudo-random
+This library deals with the common task of pseudo-random
 number generation. The library makes it possible to generate
 repeatable results, by starting with a specified initial random
 number generator; or to get different results on each run by using the 
@@ -120,8 +117,8 @@ class RandomGen g where
    -- default mathod
    genRange g = (minBound,maxBound)
 
-{- |The "Random" library provides one instance of 'RandomGen', the abstract data
-type 'StdGen'.
+{- |The "System.Random" library provides one instance of 'RandomGen', the
+abstract data type 'StdGen'.
 
 The result of repeatedly using next should be at least as statistically robust
 as the /Minimal Standard Random Number Generator/ described by
@@ -391,7 +388,7 @@ newStdGen = do
 
 {- |'getStdRandom' uses the supplied function to get a value from the current
 global random generator, and updates the global generator with the new generator
-returned by the function. For example, 'rollDice' gets a random integer between 1 and 6: 
+returned by the function. For example, @rollDice@ gets a random integer between 1 and 6: 
 
 >  rollDice :: IO Int
 >  rollDice = getStdRandom (randomR (1,6))