Remove unused imports
[ghc-hetmet.git] / compiler / main / TidyPgm.lhs
index f7644f6..530e54c 100644 (file)
@@ -19,7 +19,8 @@ import CoreTidy
 import PprCore
 import CoreLint
 import CoreUtils
-import Class   ( classSelIds )
+import CoreArity       ( exprArity )
+import Class           ( classSelIds )
 import VarEnv
 import VarSet
 import Var
@@ -32,7 +33,6 @@ import Name
 import NameSet
 import IfaceEnv
 import NameEnv
-import OccName
 import TcType
 import DataCon
 import TyCon
@@ -45,7 +45,6 @@ import Outputable
 import FastBool hiding ( fastOr )
 
 import Data.List       ( partition )
-import Data.Maybe      ( isJust )
 import Data.IORef      ( IORef, readIORef, writeIORef )
 \end{code}
 
@@ -477,6 +476,19 @@ got the wrong arity -- ie the simplifier gave it arity 2, whereas
 importing modules were expecting it to have arity 1 (Trac #2844).
 It's much safer just to inject them right at the end, after tidying.
 
+Oh: two other reasons for injecting them late:
+  - If implicit Ids are already in the bindings when we start TidyPgm,
+    we'd have to be careful not to treat them as external Ids (in
+    the sense of findExternalIds); else the Ids mentioned in *their*
+    RHSs will be treated as external and you get an interface file 
+    saying      a18 = <blah>
+    but nothing refererring to a18 (because the implicit Id is the 
+    one that does).
+
+  - More seriously, the tidied type-envt will include the implicit
+    Id replete with a18 in its unfolding; but we won't take account
+    of a18 when computing a fingerprint for the class; result chaos.
+    
 
 \begin{code}
 getImplicitBinds :: TypeEnv -> [CoreBind]
@@ -547,7 +559,7 @@ addExternal (id,rhs) needed
                     spec_ids
 
     idinfo        = idInfo id
-    dont_inline           = isNeverActive (inlinePragInfo idinfo)
+    dont_inline           = isNeverActive (inlinePragmaActivation (inlinePragInfo idinfo))
     loop_breaker   = isNonRuleLoopBreaker (occInfo idinfo)
     bottoming_fn   = isBottomingSig (newStrictnessInfo idinfo `orElse` topSig)
     spec_ids      = specInfoFreeVars (specInfo idinfo)