
17 Jun
2014
17 Jun
'14
6:54 a.m.
2014-06-17 12:51 GMT+02:00 Roman Cheplyaka
* Alexey Muranov
[2014-06-17 03:25:10-0700] Is this the expected behavior that
1 = 0
does not raise any error? What does this mean?
1 is a valid (nullary) pattern, so yes. This pattern binding obviously fails.
Prelude> let x@1 = 0 Prelude> x *** Exception: <interactive>:2:5-11: Irrefutable pattern failed for pattern x@1
If it can make things clearer, you can do something similar with any constructor: > let Just x = Just 5 in x > let Just x = Nothing in x *** Exception: <interactive>:19:5-20: Irrefutable pattern failed for pattern Data.Maybe.Just x