anchor.diff:  do_block -> do_eol 'end' : [[{do,nil}]].
   do_block -> do_eol stab end_eol : [[{ do, build_stab(lists:reverse('$2')) }]].
   do_block -> do_eol block_list 'end' : [[{ do, nil }|'$2']].
  -do_block -> do_eol stab eol block_list 'end' : [[{ do, build_stab(lists:reverse('$2')) }|'$4']].
  +do_block -> do_eol stab_eol block_list 'end' : [[{ do, build_stab(lists:reverse('$2')) }|'$3']].
   
   fn_eol -> 'fn' : '$1'.
   fn_eol -> 'fn' eol : '$1'.
  
positive.code: 
  stab -> stab_expr : ['$1'].
  stab -> stab eol stab_expr : ['$3'|'$1'].
  
  stab_expr -> expr : '$1'.
  stab_expr -> stab_op stab_maybe_expr : build_op('$1', [], '$2').
  
negative.code:   open_bit close_bit
    base_comma_expr comma_expr optional_comma_expr matched_comma_expr
    call_args call_args_parens call_args_parens_not_one call_args_no_parens parens_call
    stab stab_eol stab_op stab_expr stab_maybe_expr
    kw_eol kw_expr kw_comma kw_base
    matched_kw_expr matched_kw_comma matched_kw_base
    dot_op dot_ref dot_identifier dot_op_identifier dot_do_identifier
  