Move chr's definition into a new GHC.Char
authorIan Lynagh <igloo@earth.li>
Tue, 28 Feb 2012 23:59:35 +0000 (23:59 +0000)
committerIan Lynagh <igloo@earth.li>
Tue, 28 Feb 2012 23:59:35 +0000 (23:59 +0000)
This eliminates a SOURCE import

libraries/base/Data/Char.hs
libraries/base/Foreign/C/String.hs
libraries/base/GHC/Base.lhs
libraries/base/GHC/Char.hs [new file with mode: 0644]
libraries/base/GHC/Enum.lhs
libraries/base/GHC/IO/Encoding/Failure.hs
libraries/base/GHC/Unicode.hs
libraries/base/Text/Read/Lex.hs
libraries/base/base.cabal

index c19e8af..26ca8a4 100644 (file)
@@ -55,6 +55,7 @@ module Data.Char
 #ifdef __GLASGOW_HASKELL__
 import GHC.Base
 import GHC.Arr (Ix)
+import GHC.Char
 import GHC.Real (fromIntegral)
 import GHC.Show
 import GHC.Read (Read, readLitChar, lexLitChar)
index 47ce2b2..a55f856 100644 (file)
@@ -110,6 +110,7 @@ import Data.Word
 #ifdef __GLASGOW_HASKELL__
 import Control.Monad
 
+import GHC.Char
 import GHC.List
 import GHC.Real
 import GHC.Num
index bf4a8c1..6a36eb5 100644 (file)
@@ -109,7 +109,6 @@ import GHC.Types
 import GHC.Classes
 import GHC.CString
 import GHC.Prim
-import {-# SOURCE #-} GHC.Show
 import {-# SOURCE #-} GHC.Err
 import {-# SOURCE #-} GHC.IO (failIO)
 
@@ -458,13 +457,6 @@ type String = [Char]
 "x# `ltChar#` x#" forall x#. x# `ltChar#` x# = False
   #-}
 
--- | The 'Prelude.toEnum' method restricted to the type 'Data.Char.Char'.
-chr :: Int -> Char
-chr i@(I# i#)
- | int2Word# i# `leWord#` int2Word# 0x10FFFF# = C# (chr# i#)
- | otherwise
-    = error ("Prelude.chr: bad argument: " ++ showSignedInt (I# 9#) i "")
-
 unsafeChr :: Int -> Char
 unsafeChr (I# i#) = C# (chr# i#)
 
diff --git a/libraries/base/GHC/Char.hs b/libraries/base/GHC/Char.hs
new file mode 100644 (file)
index 0000000..398ff81
--- /dev/null
@@ -0,0 +1,15 @@
+
+{-# LANGUAGE NoImplicitPrelude, MagicHash #-}
+
+module GHC.Char (chr) where
+
+import GHC.Base
+import GHC.Show
+
+-- | The 'Prelude.toEnum' method restricted to the type 'Data.Char.Char'.
+chr :: Int -> Char
+chr i@(I# i#)
+ | int2Word# i# `leWord#` int2Word# 0x10FFFF# = C# (chr# i#)
+ | otherwise
+    = error ("Prelude.chr: bad argument: " ++ showSignedInt (I# 9#) i "")
+
index b3491f2..4475540 100644 (file)
@@ -28,6 +28,7 @@ module GHC.Enum(
    ) where
 
 import GHC.Base
+import GHC.Char
 import GHC.Integer
 import GHC.Num
 import GHC.Show
index 862de1f..35d2d93 100644 (file)
@@ -26,6 +26,7 @@ import GHC.IO.Buffer
 import GHC.IO.Exception
 
 import GHC.Base
+import GHC.Char
 import GHC.Word
 import GHC.Show
 import GHC.Num
index bd2ed73..9de8ea4 100644 (file)
@@ -31,6 +31,7 @@ module GHC.Unicode (
     ) where
 
 import GHC.Base
+import GHC.Char
 import GHC.Real        (fromIntegral)
 import Foreign.C.Types (CInt(..))
 
index e0573bf..0af66b7 100644 (file)
@@ -35,6 +35,7 @@ import Text.ParserCombinators.ReadP
 
 #ifdef __GLASGOW_HASKELL__
 import GHC.Base
+import GHC.Char
 import GHC.Num( Num(..), Integer )
 import GHC.Show( Show(..) )
 import {-# SOURCE #-} GHC.Unicode ( isSpace, isAlpha, isAlphaNum )
index ca28996..96ef062 100644 (file)
@@ -38,6 +38,7 @@ Library {
             Foreign.Concurrent,
             GHC.Arr,
             GHC.Base,
+            GHC.Char,
             GHC.Conc,
             GHC.Conc.IO,
             GHC.Conc.Signal,