anchor.diff:      ;
   
   isCaseCondition
  -    : 'is' type
  -    -> ^(IS_EXPR type)
  +    : 'is' union
  +    -> ^(IS_EXPR union)
       ;
   
   forFail
  
positive.code:     ;
      
  caseTypes
      : 'of' caseType (',' caseType)*
      -> ^(ABSTRACTS_LIST caseType+)
      ;
  
  caseType 
      : type 
      //| (annotations? 'case' memberName) => annotations? 'case' memberName 
      | memberName
      ;
  
  metatypes
      : 'is' type (',' type)* 
      ;
  
  typeConstraint
  
negative.code: typeConstraints
      : typeConstraint+
      -> ^(TYPE_CONSTRAINT_LIST typeConstraint+)
      ;
  
  union
      : type ('|' type)*
      ;
  
  type
  