[racket-dev] else clauses: possible change to match?

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Sat May 4 10:07:26 EDT 2013

At Fri, 3 May 2013 17:29:52 -0400, Eli Barzilay wrote:
> A few minutes ago, Robby Findler wrote:
> > 
> > FWIW, this was the bug in redex that prompted me to send this
> > message (it was there for some time since it wasn't a syntax error
> > .... it was similar in spirit to the code I posted; things broke
> > when #f was an argument)
> [I think that it's good to have a much more relaxed policy about
> breaking compatibility in cases like this: so far there was no real
> code found that uses the feature, but there is one instance of code
> that would get fixed by the change...]

Well, Ian provided an example from real code, right? Ian is willing to
change his code, but the code sounds real.

There's also the use in `unparse-pattern' in Redex. Maybe that's the
troublesome one that Robby has in mind changing (or he would be happy
to change it, obviously), but it's another real example.

Given these examples from the code we know, I reluctantly vote against
the change, due to concerns with backward compatibility --- and, yes,
from the sense that these issues are better addressed via `racket2'.

Meanwhile, it might be worth adding support for `#:else' to `cond',
`case', and `match'. That would be backward compatible, and we could
see whether we like it enough to do things that way in `racket2'.

Posted on the dev mailing list.