[project @ 2000-10-23 16:39:11 by simonpj]
[ghc-hetmet.git] / ghc / compiler / prelude / PrelRules.lhs
index 2b6ccf9..dff38e6 100644 (file)
@@ -19,12 +19,11 @@ module PrelRules ( primOpRule, builtinRules ) where
 import CoreSyn
 import Id              ( mkWildId )
 import Literal         ( Literal(..), isLitLitLit, mkMachInt, mkMachWord
-                       , inIntRange, inWordRange, literalType
+                       , literalType
                        , word2IntLit, int2WordLit, char2IntLit, int2CharLit
                        , float2IntLit, int2FloatLit, double2IntLit, int2DoubleLit
                        , addr2IntLit, int2AddrLit, float2DoubleLit, double2FloatLit
                        )
-import RdrName         ( RdrName )
 import PrimOp          ( PrimOp(..), primOpOcc )
 import TysWiredIn      ( trueDataConId, falseDataConId )
 import TyCon           ( tyConDataConsIfAvailable, isEnumerationTyCon, isNewTyCon )
@@ -32,8 +31,8 @@ import DataCon                ( dataConTag, dataConTyCon, dataConId, fIRST_TAG )
 import CoreUtils       ( exprIsValue, cheapEqExpr, exprIsConApp_maybe )
 import Type            ( splitTyConApp_maybe )
 import OccName         ( occNameUserString)
-import PrelNames       ( unpackCStringFoldr_RDR )
-import Unique          ( unpackCStringFoldrIdKey, hasKey )
+import PrelNames       ( unpackCStringFoldrName, unpackCStringFoldrIdKey, hasKey )
+import Name            ( Name )
 import Bits            ( Bits(..) )
 import Word            ( Word64 )
 import Outputable
@@ -311,7 +310,6 @@ trueVal       = Var trueDataConId
 falseVal      = Var falseDataConId
 mkIntVal    i = Lit (mkMachInt  i)
 mkWordVal   w = Lit (mkMachWord w)
-mkCharVal   c = Lit (MachChar   c)
 mkFloatVal  f = Lit (convFloating (MachFloat  f))
 mkDoubleVal d = Lit (convFloating (MachDouble d))
 \end{code}
@@ -424,14 +422,15 @@ dataToTagRule other = Nothing
 %************************************************************************
 
 \begin{code}
-builtinRules :: [(RdrName, CoreRule)]
+builtinRules :: [(Name, CoreRule)]
 -- Rules for non-primops that can't be expressed using a RULE pragma
 builtinRules
-  = [ (unpackCStringFoldr_RDR, BuiltinRule match_append_lit_str)
+  = [ (unpackCStringFoldrName, BuiltinRule match_append_lit_str)
     ]
 
 
--- unpackFoldrCString# "foo" c (unpackFoldrCString# "baz" c n)  =  unpackFoldrCString# "foobaz" c n
+-- The rule is this:
+--     unpackFoldrCString# "foo" c (unpackFoldrCString# "baz" c n)  =  unpackFoldrCString# "foobaz" c n
 
 match_append_lit_str [Type ty1,
                      Lit (MachStr s1),