[print better error messagses for type error on lambdas
John Meacham <john@repetae.net>**20060303010643] hunk ./FrontEnd/HsPretty.hs 710
+
+instance P.PPrint P.Doc  HsPat where
+    pprint d = unDocM (ppHsPat d) defaultMode
+
+
hunk ./FrontEnd/Tc/Main.hs 6
+import qualified Text.PrettyPrint.HughesPJ as P
hunk ./FrontEnd/Tc/Main.hs 161
-tiExpr expr@(HsLambda sloc ps e) typ = withContext (locSimple sloc $ "in the lambda expression\n   \\" ++ show ps ++ " -> ...") $ do
+tiExpr expr@(HsLambda sloc ps e) typ = withContext (locSimple sloc $ "in the lambda expression\n   \\" ++ show (pprint ps:: P.Doc) ++ " -> ...") $ do
hunk ./FrontEnd/Tc/Main.hs 174
-        lam _ _ _ _ = fail "lambda type mismatch"
+        lam _ _ t _ = do
+            t <- flattenType t
+            fail $ "expected a -> b, found: " ++ prettyPrintType t
hunk ./FrontEnd/Tc/Main.hs 581
-        lam _ _ _ = fail "lambda type mismatch"
+        lam _ t _ = do
+            t <- flattenType t
+            fail $ "expected a -> b, found: " ++ prettyPrintType t