anchor.diff:      block = '$3'#args.block,
       body  = '$5'
     }.
  -def_expr -> expr : '$1'.
  +function -> expr : '$1'.
   
   %% Valid method names
  -method_name -> function_identifier : ?identifier_name('$1').
  -method_name -> '[' ']' : '[]'.
  -method_name -> '[' ']' '=' : '[]='.
  +function_name -> function_identifier : ?identifier_name('$1').
  +function_name -> '[' ']' : '[]'.
  +function_name -> '[' ']' '=' : '[]='.
   
   %% Function identifiers
   function_identifier -> identifier : '$1'.
  
positive.code:   unary_op
    module_decl
    class_decl
    def_exprs
    def_expr
    body
    args
    args_tail
  
negative.code: unary_op -> '~'   : '$1'.
  
  %% Module declarations
  module_decl -> module module_name eol functions 'end' : 
    #module{
      line  = ?line('$1'), 
      name  = element(3, '$2'), 
  