[rename type synonyms with arguments properly
John Meacham <john@repetae.net>**20060214063650] hunk ./FrontEnd/HsPretty.hs 408
+ppHsTypePrec p HsTyExists { hsTypeVars = vs, hsTypeType = qt } = parensIf (p > 1) $ do
+    pp <- ppHsQualType qt
+    return $ DL.text "exists" DL.<+> DL.hsep (map pprint vs) DL.<+> DL.char '.' DL.<+> pp
hunk ./FrontEnd/Rename.hs 358
+    subTable' <- updateSubTableWithHsNames subTable hsNames
hunk ./FrontEnd/Rename.hs 360
-    --hsNames' <- renameHsNames hsNames subTable'
-    t' <- renameHsType' False t emptyFM
-    return (HsTypeDecl srcLoc  hsName' hsNames t')
+    hsNames' <- renameHsNames hsNames subTable'
+    t' <- renameHsType' False t subTable'
+    return (HsTypeDecl srcLoc  hsName' hsNames' t')
hunk ./FrontEnd/Tc/Monad.hs 217
+    inst mm ts (TExists as qt) = TExists as (inst mm (foldr Map.delete ts (map tyvarAtom as)) qt)
hunk ./FrontEnd/Tc/Monad.hs 327
+    ft (TExists vs (ps :=> t)) = do
+        when (any isMetaTV vs) $ error "metatv in forall binding"
+        ps' <- sequence [ ft' t >>= return . IsIn c | ~(IsIn c t) <- ps ]
+        t' <- ft' t
+        return $ TExists vs (ps' :=> t')
hunk ./FrontEnd/Type.hs 100
+  kind (TExists _ (_ :=> t)) = kind t
hunk ./FrontEnd/TypeSynonyms.hs 51
+    fv (HsTyExists vs qt) = tell $ snub (execWriter (fv $ hsQualTypeType qt)) \\ map hsTyVarBindName vs