anchor.diff:      ;
   
   rt returns [res]
  +		{ res = [] }
   	: #( at:ASSIGNTYPE 
   		{
               t = #at.getText()[1:-1]
  
positive.code: 	: v=var 
  		{ res = v }
  	| #( a:AT v=var l=expr r=expr )
  		{ raise SemanticException(#a, "unsupported") }
  	| #( p:PRIME v=var )
  		{ raise SemanticException(#p, "unsupported") }
  
negative.code:     LEU: "LtEq(Int(size,Unsigned))",
      GEU: "GtEq(Int(size,Unsigned))",
  
      //NEG: "Neg(Int(size,Signed))",
      PLUS: "Plus(Int(size,sign))",
      MINUS: "Minus(Int(size,sign))",
      MUL: "Mult(Int(size,Unsigned))",
  