anchor.diff:  stab_expr -> expr :
                  '$1'.
   stab_expr -> stab_op_eol_and_expr :
  -               build_op(element(1, '$1'), [], element(2, '$1')).
  +               build_stab_op('$1', [], element(2, '$1')).
   stab_expr -> empty_paren stab_op_eol_and_expr :
  -               build_op(element(1, '$2'), [], element(2, '$2')).
  +               build_stab_op('$2', [], element(2, '$2')).
   stab_expr -> empty_paren when_op expr stab_op_eol_and_expr :
  -               build_op(element(1, '$4'), [{'when', meta_from_token('$2'), ['$3']}], element(2, '$4')).
  +               build_stab_op('$4', [{'when', meta_from_token('$2'), ['$3']}], element(2, '$4')).
   stab_expr -> call_args_no_parens_all stab_op_eol_and_expr :
  -               build_op(element(1, '$2'), unwrap_when(unwrap_splice('$1')), element(2, '$2')).
  +               build_stab_op('$2', unwrap_when(unwrap_splice('$1')), element(2, '$2')).
   stab_expr -> stab_parens_many stab_op_eol_and_expr :
  -               build_op(element(1, '$2'), unwrap_splice('$1'), element(2, '$2')).
  +               build_stab_op('$2', unwrap_splice('$1'), element(2, '$2')).
   stab_expr -> stab_parens_many when_op expr stab_op_eol_and_expr :
  -               build_op(element(1, '$4'), [{'when', meta_from_token('$2'), unwrap_splice('$1') ++ ['$3']}], element(2, '$4')).
  +               build_stab_op('$4', [{'when', meta_from_token('$2'), unwrap_splice('$1') ++ ['$3']}], element(2, '$4')).
   
   stab_op_eol_and_expr -> stab_op_eol expr : {'$1', '$2'}.
   stab_op_eol_and_expr -> stab_op_eol : warn_empty_stab_clause('$1'), {'$1', nil}.
  
positive.code:   {Op, meta_from_location(Location), [Expr]}.
  
  build_list(Marker, Args) ->
    {handle_literal(Args, Marker), ?location(Marker)}.
  
  build_tuple(Marker, [Left, Right]) ->
    handle_literal({Left, Right}, Marker);
  build_tuple(Marker, Args) ->
    {'{}', meta_from_token(Marker), Args}.
  
  build_bit(Marker, Args) ->
    {'<<>>', meta_from_token(Marker), Args}.
  
  build_map(Marker, Args) ->
    {'%{}', meta_from_token(Marker), Args}.
  
  build_map_update(Marker, {Pipe, Left, Right}, Extra) ->
    {'%{}', meta_from_token(Marker), [build_op(Pipe, Left, Right ++ Extra)]}.
  
  %% Blocks
  
  
negative.code: -compile([{hipe, [{regalloc, linear_scan}]}]).
  -import(lists, [reverse/1, reverse/2]).
  
  meta_from_token(Token) ->
    meta_from_location(?location(Token)).
  
  meta_from_location({Line, {_Column, _EndColumn}, _}) when is_integer(Line) ->
    [{line, Line}].
  
  %% Handle metadata in literals
  
  