Ticket #61 (closed defect: fixed)
Desugaring pattern matches with guards is broken
|Reported by:||benl||Owned by:||benl|
For this program:
main () = f (1, 2) f :: (Int, Int) -> () f (a, b) | a == b = putStr "yep" f (a, b) = putStr "no
We get a pattern matching failure instead of "nope".
After the desugarer appends two cases from the two equations for 'f', it still needs to merge the common tuple match.
Test is T61-GuardDesugar