In the section "Dominance of pattern label",
It's not clear to me if there is a dominance in between expressions,
by example, can we have the following cases in that order ?

   case Foo(var a, var b) && a == 3:
   case Foo(var a, var b) && a == 3 && b  == 4:

for me the answer is yes, the dominance is computed on patterns only, not on 
expressions.

This problem is related to totality; could we determine that

    case Foo(int x) && x > 0:
    case Foo(int x) && x <= 0:

is total?  For this case, sure, but in general, at best we can do a bad job, and spend more and more effort to get closer, but never quite getting there.  Computing dominance between expressions is the same problem, with the same sad result.

So, I think the answer is: when you go off into expression world, we lose the ability to reason about dominance and totality.  We know that P dominates P&g for any g, but that's about as far as we go.

Reply via email to