anchor.diff:  	  case Exprs1 of
   	    [] -> [];
   	    _ ->
  -		lists:append([do_find_anti_unifier(E1, E2) || {E1, E2} <- lists:zip(Exprs1, Exprs2)])
  +		  lists:append([do_find_anti_unifier(E1, E2) 
  +				|| {E1, E2} <- lists:zip(Exprs1, Exprs2)])
   	  end;
  -      false ->
  -	  ?debug("Does not unify 1:\n~p\n", [{Exprs1, Exprs2}]),
  -	  throw(non_unifiable)
  +	false ->
  +	    ?debug("Does not unify 1:\n~p\n", [{Exprs1, Exprs2}]),
  +	    throw(non_unifiable)
       end;
   do_find_anti_unifier(Expr1, _Expr2) when is_list(Expr1) ->
       ?debug("Does not unify 2:n~p\n", [{Expr1, _Expr2}]),
  
positive.code: 
  subst_check(Expr1, SubSt) ->
      BVs = refac_util:get_bound_vars(Expr1),
      case BVs of
        [] ->
  	  true;
        _ -> lists:all(fun ({E1, E2}) ->
  			     case refac_syntax:type(E1) of
  			       variable ->
  				   case is_macro_name(E1) of
  				     true ->
  					 false;
  				     _ -> {value, {def, DefPos}} = lists:keysearch(def, 1, refac_syntax:get_ann(E1)),
  					  %% local vars should have the same substitute.
  					  not lists:any(fun ({E11, E21}) ->
  								refac_syntax:type(E11) == variable andalso
  								  {value, {def, DefPos}} == lists:keysearch(def, 1, refac_syntax:get_ann(E11)) andalso
  								    refac_prettypr:format(reset_attrs(E2))
  								      =/= refac_prettypr:format(reset_attrs(E21))
  							end, SubSt)
  				   end;
  			       _ ->
  				   %% the expression to be replaced should not contain local variables.
  				   BVs -- refac_util:get_free_vars(E1) == BVs
  			     end
  		     end, SubSt)
      end.
      
  reset_attrs(Node) ->
      refac_util:full_buTP(fun (T, _Others) -> 
  				 refac_syntax:remove_comments(refac_syntax:set_ann(T, [])) end, 
  			 Node, {}).
  
     
  
negative.code: -endif.
  
  %% ================================================================================================
  %% @doc Search for expressions that are 'similar' to an expression/expression sequence selected by
  %%      the user in the current Erlang buffer.
  %% <p> Given expression selected by the user, A say, expression B is similar to A if there exist a least 
  %% general common abstation, C, such that, substitution C(Args1) = A, and C(Arg2) == B, and 
  %% Size(C) /Size(A) > the threshold specified (0.8 by default).
  %% </p>
  %% <p> In the case that code selected contains multiple, but non-continuous, sequence of expressions, the first
  %% continuous sequence of expressions is taken as the expression selected by the user. A continuous sequence of
  %% expressions is a sequence of expressions separated by ','.
  %% <p>
  
  