Comment case-alternative invariants
| Lam b (Expr b)
| Let (Bind b) (Expr b)
| Case (Expr b) b [Alt b] -- Binder gets bound to value of scrutinee
- -- DEFAULT case must be *first*, if it occurs at all
+ -- Invariant: the list of alternatives is ALWAYS EXHAUSTIVE
+ -- Invariant: the DEFAULT case must be *first*, if it occurs at all
| Note Note (Expr b)
| Type Type -- This should only show up at the top
-- level of an Arg