anchor.diff:  	|	NULL
   	|	PLUS_INFINITY
   	|   MINUS_INFINITY
  -	|	val=valuereference										->^(VALUE_REFERENCE[(IToken)val.Start] $val)
  +	|	val=valuereference										->^(VALUE_REFERENCE[(Token)val.start] $val)
   	|   INT
   	| 	FloatingPointLiteral
   	| a=L_BRACKET R_BRACKET 									-> ^(EMPTY_LIST[$a] )
  
positive.code: choiceValue :	identifier a=':' value	->^(CHOICE_VALUE[$a] identifier value)
  	;	
  
  namedValue 	:	a=identifier value		->^(NAMED_VALUE[(IToken)a.Start] identifier value)
  	;
  	
  /*
  
negative.code: 
  typeTag
  	:	a='[' (t=UNIVERSAL | t=APPLICATION | t=PRIVATE)? (INT|val=valuereference)  ']' ( impOrExp=IMPLICIT | impOrExp=EXPLICIT)? 	
  			-> ^(TYPE_TAG[$a] $t? INT? ^(VALUE_REFERENCE[(Token)val.start] $val)? $impOrExp?)
  	;
  	
  /*
  