anchor.diff:                                  [] -> {refac_syntax:list(Expr), true};
                                   [E] ->
                                       %% No longer can guarantee the correctness of annotations.
  -                                    {refac_misc:reset_pos(E), true};
  +                                    {reset_pos_and_range(E), true};
                                   _ ->
                                       E1=refac_syntax:add_ann(
                                            {fake_block_expr, true},
                                            %%refac_syntax:block_expr(Expr)),
  -                                         refac_misc:reset_pos(
  +                                         reset_pos_and_range(
                                              refac_syntax:block_expr(Expr))),
                                       {E1, true}
                               end;
                           false ->
  -                            E1=refac_misc:reset_pos(Expr),
  +                            E1=reset_pos_and_range(Expr),
                               {E1,  true}
                       end;
                   _ -> {Node, false}
  
positive.code: %%@private
  subst(Expr, Subst) when is_list(Expr) ->
      [subst(E, Subst)||E<-Expr];
    
  subst(Expr, Subst) ->
      {Expr1, _} =ast_traverse_api:stop_tdTP(fun do_subst/2, Expr, Subst),
      remove_fake_begin_end(Expr1).
   
  do_subst(Node, Subst) ->
      case refac_syntax:type(Node) of
  
negative.code: %%@private
  match(Temp, Node) -> 
      generalised_unification:expr_match(Temp, Node).
            
      
  try_expr_match([], _Node) ->false;
  try_expr_match([{BeforeExpr, AfterExpr, Cond}|T], Node) 
  