Remove redundant anonymiseTyBinders (#11648)
authorRichard Eisenberg <eir@cis.upenn.edu>
Tue, 15 Mar 2016 15:37:00 +0000 (11:37 -0400)
committerRichard Eisenberg <eir@cis.upenn.edu>
Tue, 15 Mar 2016 15:37:00 +0000 (11:37 -0400)
This was necessary in an earlier version of the patch for #11648,
but not in the final version. I forgot to remove it.

compiler/typecheck/TcTyClsDecls.hs
compiler/typecheck/TcType.hs

index 2b19b62..cfd9559 100644 (file)
@@ -317,15 +317,14 @@ kcTyClGroup (TyClGroup { group_tyclds = decls })
                  kc_res_kind = tyConResKind tc
            ; kvs <- kindGeneralize (mkForAllTys kc_binders kc_res_kind)
            ; (kc_binders', kc_res_kind') <- zonkTcKindToKind kc_binders kc_res_kind
                  kc_res_kind = tyConResKind tc
            ; kvs <- kindGeneralize (mkForAllTys kc_binders kc_res_kind)
            ; (kc_binders', kc_res_kind') <- zonkTcKindToKind kc_binders kc_res_kind
-           ; let kc_binders'' = anonymiseTyBinders kc_binders' kc_res_kind'
 
                       -- Make sure kc_kind' has the final, zonked kind variables
            ; traceTc "Generalise kind" $
              vcat [ ppr name, ppr kc_binders, ppr kc_res_kind
 
                       -- Make sure kc_kind' has the final, zonked kind variables
            ; traceTc "Generalise kind" $
              vcat [ ppr name, ppr kc_binders, ppr kc_res_kind
-                  , ppr kvs, ppr kc_binders'', ppr kc_res_kind' ]
+                  , ppr kvs, ppr kc_binders', ppr kc_res_kind' ]
 
            ; return (mkTcTyCon name
 
            ; return (mkTcTyCon name
-                               (map (mkNamedBinder Invisible) kvs ++ kc_binders'')
+                               (map (mkNamedBinder Invisible) kvs ++ kc_binders')
                                kc_res_kind'
                                (mightBeUnsaturatedTyCon tc)) }
 
                                kc_res_kind'
                                (mightBeUnsaturatedTyCon tc)) }
 
index b3bd4ee..40821e5 100644 (file)
@@ -87,7 +87,6 @@ module TcType (
   orphNamesOfTypes, orphNamesOfCoCon,
   getDFunTyKey,
   evVarPred_maybe, evVarPred,
   orphNamesOfTypes, orphNamesOfCoCon,
   getDFunTyKey,
   evVarPred_maybe, evVarPred,
-  anonymiseTyBinders,
 
   ---------------------------------
   -- Predicate types
 
   ---------------------------------
   -- Predicate types
@@ -223,7 +222,6 @@ import qualified GHC.LanguageExtensions as LangExt
 import Data.IORef
 import Control.Monad (liftM, ap)
 import Data.Functor.Identity
 import Data.IORef
 import Control.Monad (liftM, ap)
 import Data.Functor.Identity
-import Data.List ( mapAccumR )
 
 {-
 ************************************************************************
 
 {-
 ************************************************************************
@@ -2360,28 +2358,3 @@ sizeType = go
 
 sizeTypes :: [Type] -> TypeSize
 sizeTypes tys = sum (map sizeType tys)
 
 sizeTypes :: [Type] -> TypeSize
 sizeTypes tys = sum (map sizeType tys)
-
-{-
-************************************************************************
-*                                                                      *
-       Binders
-*                                                                      *
-************************************************************************
--}
-
--- | Given a list of binders and a type they bind in, turn any
--- superfluous Named binders into Anon ones.
-anonymiseTyBinders :: [TyBinder] -> Type -> [TyBinder]
-anonymiseTyBinders binders res_ty = binders'
-  where
-    (_, binders') = mapAccumR go (tyCoVarsOfTypeAcc res_ty) binders
-
-    go :: FV -> TyBinder -> (FV, TyBinder)
-    go fv (Named tv Visible)
-      | not (tv `elemVarSet` runFVSet fv)
-      = ( (tv `FV.delFV` fv) `unionFV` tyCoVarsOfTypeAcc kind
-        , Anon kind )
-      where
-        kind = tyVarKind tv
-
-    go fv binder = (tyCoVarsBndrAcc binder fv, binder)