Good point, Rémi.  However, note that

        case pat1, pat2 -> s

is equally too close to

        case pat1 -> pat2 -> s

and again they have very different meanings.

We have to admit that there is room to blunder with this syntax.

One way out would be to use a different arrow for `switch` statements:

        switch (x) {
                case pat1 => case pat2 => s1;
                case pat3 => pat4 -> s2;
                case pat5, pat6 => s2;
                case pat 7, pat8 => pat9 -> s4;
        }

> On Apr 23, 2018, at 2:29 PM, Remi Forax <fo...@univ-mlv.fr> wrote:
> 
> I agree with Kevin,
>   case pat1 -> case pat2 -> s
> is too close to
>   case pat1 -> pat2 -> s
> which has a very different meaning (the result is a lambda).
> 
> Rémi

Reply via email to