anchor.diff:    }.
     
   %% Class declarations
  -class_decl -> class module_name eol 'end' : 
  -  #class{
  -    line    = ?line('$1'), 
  -    name    = ?identifier_name('$2'), 
  -    methods = []
  -  }.
  -class_decl -> class module_name eol functions 'end' : 
  +class_decl -> class module_name eol def_exprs 'end' : 
     #class{
       line    = ?line('$1'), 
       name    = ?identifier_name('$2'), 
       methods = '$4'
     }.
  -class_decl -> class module_name '<' module_name eol 'end':
  -  #class{
  -    line       = ?line('$1'), 
  -    name       = ?identifier_name('$2'), 
  -    superclass = ?identifier_name('$4'),
  -    methods    = []
  -  }.
  -class_decl -> class module_name '<' module_name eol functions 'end' : 
  +class_decl -> class module_name '<' module_name eol def_exprs 'end' : 
     #class{
       line       = ?line('$1'), 
       name       = ?identifier_name('$2'),
  
positive.code: 
  %% Remote function calls with indexes
  call -> call_expr '.' function_identifier '[' expr ']' :
  	#binary_op{
      line = ?line('$1'),
      type = '[]',
      left = #remote_call{
  		    line     = ?line('$2'),
  		    receiver = '$1',
  		    name     = ?identifier_name('$3'),
  		    args     = []
  		  },
      right = '$5'
    }.
    
  
negative.code:   unary_op
    module_decl
    class_decl
    def_exprs
    def_expr
    body
    pargs
    pargs_tail
  