anchor.diff:      ;
   
   typeConstraint
  -    : 'given' typeName formalParameters? metatypes? satisfiedTypes? abstractedType?
  +    : 'given' typeName formalParameters? caseTypes? metatypes? satisfiedTypes? abstractedType?
       -> ^(TYPE_CONSTRAINT typeName formalParameters? satisfiedTypes? abstractedType?)
       ;
       
   typeConstraints
       : typeConstraint+
       -> ^(TYPE_CONSTRAINT_LIST typeConstraint+)
  -    ;
  -
  -union
  -    : type ('|' type)*
       ;
   
   type
  
positive.code:     ;
  
  variable
      : (union | 'local') memberName formalParameters*
      ;
  
  // Lexer
  
negative.code:     ;
  
  isCaseCondition
      : 'is' type
      -> ^(IS_EXPR type)
      ;
  
  forFail
  