use correct names of IOArray operations for nhc98
[haskell-directory.git] / Data / HashTable.hs
index 7eab89d..ddbc24b 100644 (file)
@@ -56,11 +56,13 @@ import GHC.IOBase   ( IO, IOArray, newIOArray,
 #else
 import Data.Char       ( ord )
 import Data.IORef      ( IORef, newIORef, readIORef, writeIORef )
+import System.IO.Unsafe        ( unsafePerformIO )
+import Data.Int                ( Int64 )
 #  if defined(__HUGS__)
 import Hugs.IOArray    ( IOArray, newIOArray,
                          unsafeReadIOArray, unsafeWriteIOArray )
 #  elif defined(__NHC__)
-import NHC.IOExtras    ( IOArray, newIOArray )
+import NHC.IOExtras    ( IOArray, newIOArray, readIOArray, writeIOArray )
 #  endif
 #endif
 import Control.Monad   ( mapM, mapM_, sequence_ )
@@ -81,9 +83,9 @@ newMutArray   :: (Int32, Int32) -> a -> IO (MutArray a)
 #if defined(DEBUG) || defined(__NHC__)
 type MutArray a = IOArray Int32 a
 type HTArray a = MutArray a
-newMutArray = newArray
-readHTArray  = readArray
-writeMutArray = writeArray
+newMutArray = newIOArray
+readHTArray  = readIOArray
+writeMutArray = writeIOArray
 freezeArray = return
 thawArray = return
 #else
@@ -190,6 +192,7 @@ golden = -1640531527
 -- implemented by extracting the uppermost 32 bits of the 64-bit
 -- result of multiplying by a 32-bit constant.  The constant is from
 -- Knuth, derived from the golden ratio:
+--
 -- > golden = round ((sqrt 5 - 1) * 2^31) :: Int
 hashInt :: Int -> Int32
 hashInt x = mulHi (fromIntegral x) golden