[make errors from synonym expansion propegate properly
John Meacham <john@repetae.net>**20051205055652] hunk ./FrontEnd/TIModule.hs 137
+    processIOErrors
hunk ./FrontEnd/TypeSynonyms.hs 39
-removeSynonymsFromType :: TypeSynonyms -> HsType -> HsType
-removeSynonymsFromType syns t
-   = runIdentity $ evalTypeSyms  syns t
+removeSynonymsFromType :: MonadWarn m => TypeSynonyms -> HsType -> m HsType
+removeSynonymsFromType syns t = evalTypeSyms  syns t
hunk ./FrontEnd/TypeSynonyms.hs 58
-            warn sl "partialap" ("Partially applied typesym:" <+> show n <+> "need" <+> show (- excess) <+> "more arguments.")
+            warn sl "type-synonym-partialap" ("Partially applied typesym:" <+> show n <+> "need" <+> show (- excess) <+> "more arguments.")
hunk ./FrontEnd/TypeSyns.hs 33
-expandTypeSyns syns m = return rm where
+expandTypeSyns syns m = ans where
hunk ./FrontEnd/TypeSyns.hs 41
-    (rm, _) = runState (renameDecls m) startState
+    (rm, fs) = runState (renameDecls m) startState
+    ans = do
+        mapM_ addWarning (errors fs)
+        return rm
+
hunk ./FrontEnd/TypeSyns.hs 213
-        --addDiag $ show ("pp", t')
-        --return t'
-        return (removeSynonymsFromType syns t')
+        removeSynonymsFromType syns t'
hunk ./FrontEnd/TypeSyns.hs 724
-                HsEVar  # name			
+                HsEVar  # name
hunk ./FrontEnd/TypeSyns.hs 726
-                HsEAbs  # name			
+                HsEAbs  # name
hunk ./FrontEnd/TypeSyns.hs 728
-                HsEThingAll  # name		
+                HsEThingAll  # name
hunk ./FrontEnd/TypeSyns.hs 730
-                HsEThingWith  # name # names	
+                HsEThingWith  # name # names
hunk ./FrontEnd/TypeSyns.hs 732
-                HsEModuleContents mod	
+                HsEModuleContents mod
hunk ./FrontEnd/TypeSyns.hs 751
-                HsIVar  # name			
+                HsIVar  # name
hunk ./FrontEnd/TypeSyns.hs 753
-                HsIAbs  # name			
+                HsIAbs  # name
hunk ./FrontEnd/TypeSyns.hs 755
-                HsIThingAll  # name		
+                HsIThingAll  # name
hunk ./FrontEnd/TypeSyns.hs 757
-                HsIThingWith  # name # names	
+                HsIThingWith  # name # names
hunk ./FrontEnd/TypeSyns.hs 935
-                HsAsPat  # name # exp		
+                HsAsPat  # name # exp
hunk ./FrontEnd/TypeSyns.hs 937
-                HsWildCard x			
+                HsWildCard x
hunk ./FrontEnd/TypeSyns.hs 939
-                HsIrrPat  # exp		
+                HsIrrPat  # exp
hunk ./FrontEnd/Warning.hs 66
-    "ambiguous-export", "unknown-import", "parse-error", "missing-dep" ]
+    "ambiguous-export", "unknown-import", "parse-error", "missing-dep", "type-synonym-partialap" ]
hunk ./test/Forall.hs 24
+type Arg2 f b = f b
+
+type IO' a = IO a
+
hunk ./test/Forall.hs 33
+-- type synonym with forall
+id2 :: IdentityFunc
+id2 x = x
+
+
+
hunk ./test/Forall.hs 41
-id2 :: a -> IdentityFunc
-id2 _ x = x
+--id3 :: a -> IdentityFunc
+--id3 _ x = x
+
+--id4 :: a -> forall a . a -> a
+--id4 _ x = x
+
hunk ./test/Forall.hs 52
+-- synonyms may be partially applied in arguments to other type synonyms
+synPart :: Arg2 IO' Int
+synPart = undefined
+
+-- incomplete partially applied synonym. should be rejected
+--synPart' :: Arg2 IO
+--synPart' = undefined