3 From: Olaf Chitil <chitil@Informatik.RWTH-Aachen.DE>
5 It is a problem with 0.29 (which we use for compiling 2.01), it is gone
8 f :: Eq a => a -> [b] -> [b] -> Bool
10 main = print (f True "" "Hallo")
13 when run after compilation with 0.29 you get:
14 Fail: "test.hs", line 6: incomplete pattern(s) to match in function "ds.d5b4"
16 while 2.01 gives you as desired
17 Fail: In pattern-matching: function f{-aYw-}; at test.hs, line 6
19 The problem is the dictionary, because for the program
21 f :: a -> [b] -> [b] -> Bool
23 main = print (f True "" "Hallo")
25 0.29 gives the function name "f" as well.
27 So it's ok in 2.01, but why did you change the form of the error messages?
28 "incomplete pattern(s) to match" is more informative then "In pattern-matching"!
29 I even prefer the order of information in the 0.29 error messages.
31 May I finally repeat that in my opinion the compiler should warn about
32 incomplete patterns during compilation. However, I suppose the
33 incomplete patterns are just recognised by the desugarer which does
34 not produce error messages any more.
41 f :: Eq a => a -> [b] -> [b] -> Bool
44 main = print (f True "" "Hallo")