Spot ForceSpecConstr arguments in polymorphic loops
authorRoman Leshchinskiy <rl@cse.unsw.edu.au>
Mon, 15 Feb 2010 02:53:08 +0000 (02:53 +0000)
committerRoman Leshchinskiy <rl@cse.unsw.edu.au>
Mon, 15 Feb 2010 02:53:08 +0000 (02:53 +0000)
compiler/specialise/SpecConstr.lhs

index b839412..2427075 100644 (file)
@@ -671,7 +671,7 @@ ignoreAltCon env (LitAlt lit) = ignoreType env (literalType lit)
 ignoreAltCon _   DEFAULT      = True
 
 forceSpecBndr :: ScEnv -> Var -> Bool
-forceSpecBndr env var = forceSpecFunTy env . varType $ var
+forceSpecBndr env var = forceSpecFunTy env . snd . splitForAllTys . varType $ var
 
 forceSpecFunTy :: ScEnv -> Type -> Bool
 forceSpecFunTy env = any (forceSpecArgTy env) . fst . splitFunTys