anchor.diff:    }.
   
   %% Expression lists with interspersed defs (eol delimited)
  -def_exprs -> eol : [].
  -def_exprs -> def_expr : ['$1'].
  -def_exprs -> def_expr eol : ['$1'].
  -def_exprs -> eol def_exprs : '$2'.
  -def_exprs -> def_expr eol def_exprs : ['$1'|'$3'].
  +functions -> eol : [].
  +functions -> function : ['$1'].
  +functions -> function eol : ['$1'].
  +functions -> eol functions : '$2'.
  +functions -> function eol functions : ['$1'|'$3'].
   
   %% Function definitions
  -def_expr -> def method_name eol body 'end' : 
  +function -> def function_name eol body 'end' : 
     #function{
       line = ?line('$1'), 
       name = '$2', 
       body = '$4'
     }.
  -def_expr -> def method_name args eol body 'end' :
  +function -> def function_name args eol body 'end' :
     #function{
       line  = ?line('$1'), 
       name  = '$2', 
  
positive.code:   catch_clauses
    catch_clause
    function_identifier
    method_name
    ivar
    bound_var
    rebind_op
  
negative.code: unary_op -> '~'   : '$1'.
  
  %% Module declarations
  module_decl -> module module_name eol functions 'end' : 
    #module{
      line  = ?line('$1'), 
      name  = element(3, '$2'), 
  