Re: [Haskell-cafe] extra semi-colons

The rule "alt" allows "(empty alternative)"
Ah, yes. But no? The standard says
A case expression must have at least one alternative and each alternative must have at least one body.
Should this be "each non-empty alternative must have ..."? I think the intention is to allow case () of () | False -> () | True -> () (one alternative, two bodies) but to disallow case () of () (one alternative, no body) - J.

As of at least recently, empty cases are entirely permitted (and used for e.g. Void / nullary types). On Wed, Jun 26, 2019 at 3:08 PM Johannes Waldmann < johannes.waldmann@htwk-leipzig.de> wrote:
The rule "alt" allows "(empty alternative)"
Ah, yes. But no? The standard says
A case expression must have at least one alternative and each alternative must have at least one body.
Should this be "each non-empty alternative must have ..."?
I think the intention is to allow
case () of () | False -> () | True -> ()
(one alternative, two bodies) but to disallow
case () of ()
(one alternative, no body)
- J. _______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.
-- brandon s allbery kf8nh allbery.b@gmail.com

On 6/26/19 9:09 PM, Brandon Allbery wrote:
As of at least recently, empty cases are entirely permitted
Yes I know, but this is not about "empty case" (= no alternative?), but about one (or more) empty alternatives (that are accepted without -XEmptyCase ). I admit it's not related to any practical problem. It came up in the following way: a student who compared ghc's behaviour to that of a purpose-built parser for case expressions that I wrote for my e-Learning/testing system. And I thought - well, the Standard certainly should explain ghc's behaviour, but I have a hard time parsing it. More nit-picking: while "case () of { }" prompts the "Use EmptyCase" hint, "case () of { ; }" is a parse error (no hint), with or without -XEmptyCase. - J
participants (2)
-
Brandon Allbery
-
Johannes Waldmann