anchor.diff:      ;
   
   memberHeader
  -    : memberType memberName -> ^(MEMBER_TYPE memberType) memberName
  -    | 'assign' memberName -> ^(ATTRIBUTE_SETTER memberName)
  +    : memberType memberName
  +    -> ^(MEMBER_TYPE memberType) memberName
  +    | 'assign' memberName
  +    -> ^(ATTRIBUTE_SETTER memberName)
       ;
   
   memberType
  
positive.code:     ;
      
  cases 
      : caseItem+ ('else' block)?
      -> caseItem+ ^(CASE_DEFAULT block)?
      ;
      
  caseItem
      : ('case' '(' caseCondition ')' block)
      -> ^(CASE_ITEM caseCondition block)
      ;	 
      
  caseCondition
      : expressions | ('is' type -> ^(IS_EXPR type))
      ;
  
  expressions
      : expression (',' expression)*
      -> ^(EXPR_LIST expression+)
      ;
  
  forFail
  
negative.code:     ;
      
  positionalArguments
      : '(' ( positionalArgument (',' positionalArgument)* )? ')'
      -> ^(ARG_LIST positionalArgument*)
      ;
  
  positionalArgument
  