[Haskell-cafe] Bug in Hugs, Haskell behavior question
derek.a.elkins at gmail.com
Fri Apr 4 21:49:41 EDT 2008
On Fri, 2008-04-04 at 18:34 -0700, Fritz Ruehr wrote:
> In lab the other day I was showing pattern bindings to a student and
> broached a limiting case, one with no variables to be bound in the
> pattern. I was surprised to find that Hugs crashed when I tried a
> pattern binding at top level like this:
> (2,[1,4],5) = (2,[1,4],5)
> It also crashed on the simpler:
>  = 
> On the other hand, this turns out to be acceptable:
> 2 = 2
> In fact, even this goes through without a hitch!
> 2 = 3
> I'm not sure from the language definition yet whether this last
> should give an "Unmatched pattern" error, but if it's intended
> behavior, it does look a little odd.
> Would anyone care to argue for or against allowing this?
> In any case, the more structured patterns cause the latest (Sep 06)
> Hugs release to crash, with "INTERNAL ERROR: compileGlobalFunction".
> (GHC allows the strange "2 = 3" and handles the structured ones fine,
> including even "(1,[2,3],4) = (4,[3,37],42)". I haven't checked any
> other compilers.)
Top-level bindings are irrefutable, so 2 = 3 is fine, if vacuous.
More information about the Haskell-Cafe