Fix building genprimopcode with GHC 7.0, and remove haskell98 imports
[ghc-hetmet.git] / utils / genprimopcode / Main.hs
index 10e577e..5b802bc 100644 (file)
@@ -8,10 +8,10 @@ module Main where
 import Parser
 import Syntax
 
-import Char
-import List
-import System ( getArgs )
-import Maybe ( catMaybes )
+import Data.Char
+import Data.List
+import Data.Maybe ( catMaybes )
+import System.Environment ( getArgs )
 
 main :: IO ()
 main = getArgs >>= \args ->
@@ -124,13 +124,15 @@ gen_hs_source (Info defaults entries) =
        ++ "-- Portability :  non-portable (GHC extensions)\n"
        ++ "--\n"
        ++ "-- GHC\'s primitive types and operations.\n"
+       ++ "-- Use GHC.Exts from the base package instead of importing this\n"
+       ++ "-- module directly.\n"
        ++ "--\n" 
        ++ "-----------------------------------------------------------------------------\n"
        ++ "module GHC.Prim (\n"
        ++ unlines (map (("\t" ++) . hdr) entries)
        ++ ") where\n"
     ++ "\n"
-    ++ "import GHC.Bool\n"
+    ++ "import GHC.Types\n"
     ++ "\n"
     ++ "{-\n"
        ++ unlines (map opt defaults)
@@ -485,7 +487,7 @@ gen_wrappers (Info _ entries)
        -- don't need the Prelude here so we add NoImplicitPrelude.
      ++ "module GHC.PrimopWrappers where\n" 
      ++ "import qualified GHC.Prim\n" 
-     ++ "import GHC.Bool (Bool)\n"
+     ++ "import GHC.Types (Bool)\n"
      ++ "import GHC.Unit ()\n"
      ++ "import GHC.Prim (" ++ types ++ ")\n"
      ++ unlines (concatMap f specs)
@@ -660,8 +662,7 @@ ppType (TyApp "MVar#" [x,y])     = "mkMVarPrimTy " ++ ppType x
                                    ++ " " ++ ppType y
 ppType (TyApp "TVar#" [x,y])     = "mkTVarPrimTy " ++ ppType x 
                                    ++ " " ++ ppType y
-ppType (TyUTup ts)               = "(mkTupleTy Unboxed " ++ show (length ts)
-                                   ++ " "
+ppType (TyUTup ts)               = "(mkTupleTy Unboxed " 
                                    ++ listify (map ppType ts) ++ ")"
 
 ppType (TyF s d) = "(mkFunTy (" ++ ppType s ++ ") (" ++ ppType d ++ "))"