Make Control.Exception buildable by nhc98.
[haskell-directory.git] / Data / Char.hs
index 48de798..f770999 100644 (file)
@@ -56,6 +56,7 @@ module Data.Char
 
 #ifdef __GLASGOW_HASKELL__
 import GHC.Base
+import GHC.Arr (Ix)
 import GHC.Real (fromIntegral)
 import GHC.Show
 import GHC.Read (Read, readLitChar, lexLitChar)
@@ -65,6 +66,7 @@ import GHC.Enum
 #endif
 
 #ifdef __HUGS__
+import Hugs.Prelude (Ix)
 import Hugs.Char
 #endif
 
@@ -72,8 +74,9 @@ import Hugs.Char
 import Prelude
 import Prelude(Char,String)
 import Char
+import Ix
 import NHC.FFI (CInt)
-foreign import ccall unsafe "WCsubst.h u_gencat" wgencat :: CInt -> Int
+foreign import ccall unsafe "WCsubst.h u_gencat" wgencat :: CInt -> CInt
 #endif
 
 -- | Convert a single digit 'Char' to the corresponding 'Int'.  
@@ -127,12 +130,12 @@ data GeneralCategory
         | Surrogate             -- ^ Cs: Other, Surrogate
         | PrivateUse            -- ^ Co: Other, Private Use
         | NotAssigned           -- ^ Cn: Other, Not Assigned
-        deriving (Eq, Ord, Enum, Read, Show, Bounded)
+        deriving (Eq, Ord, Enum, Read, Show, Bounded, Ix)
 
 -- | The Unicode general category of the character.
 generalCategory :: Char -> GeneralCategory
 #if defined(__GLASGOW_HASKELL__) || defined(__NHC__)
-generalCategory c = toEnum (wgencat (fromIntegral (ord c)))
+generalCategory c = toEnum $ fromIntegral $ wgencat $ fromIntegral $ ord c
 #endif
 #ifdef __HUGS__
 generalCategory c = toEnum (primUniGenCat c)