[Haskell-cafe] 1 = 0?

Erik Hesselink hesselink at gmail.com
Tue Jun 17 11:05:12 UTC 2014


On Tue, Jun 17, 2014 at 12:51 PM, Roman Cheplyaka <roma at ro-che.info> wrote:
> * Alexey Muranov <alexey.muranov at gmail.com> [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 at 1 = 0
>   Prelude> x
>   *** Exception: <interactive>:2:5-11: Irrefutable pattern failed for pattern x at 1

It doesn't even have to fail, since numeric literals are overloaded:

instance Num () where
  fromInteger _ = ()

v :: ()
v = let x at 1 = 0 in x

> v
()

Erik


More information about the Haskell-Cafe mailing list