anchor.diff:     ;
   
   procedure
  -   : idn '=' 'proc' parms? args returnz? signals? where? routine body 'end' idn
  +   : idn '=' 'proc' parms? args returnz? signals? where? routine_body 'end' idn
      ;
   
   iterator
  -   : idn '=' 'iter' parms? args yields? signals? where? routine body 'end' idn
  +   : idn '=' 'iter' parms? args yields? signals? where? routine_body 'end' idn
      ;
   
   creator
  -   : idn '=' 'creator' args returnz? signals? routine body 'end' idn
  +   : idn '=' 'creator' args returnz? signals? routine_body 'end' idn
      ;
   
   handler
  -   : idn '=' 'handler' args returnz? signals? routine body 'end' idn
  +   : idn '=' 'handler' args returnz? signals? routine_body 'end' idn
      ;
   
   routine_body
  
positive.code:    | string_literal
     | 'self'
     | reference
     | (entity '.' name)
     | (entity expression?)
     | 'bind' entity ((bind_arg (',' bind_arg)*)?)
     | type_spec '$' (field (',' field)*)*
     | type_spec '$' ((expression ':')? (expression (',' expression)*)?)?
     | type_spec '$' name ((actual_parm (',' actual_parm)*)?)?
  
negative.code:    ;
  
  opbinding
     : name (',' name)* ':' primaries
     ;
  
  expression
     : primaries
     | call '@' primaries
     | '(' expression ')'
     | '~' expression
     | '−' expression
     | expression '**' expression
  