anchor.diff:  		    SubTrees2 = erl_syntax:subtrees(Exp2),
   		    case length(SubTrees1) == length(SubTrees2) of
   			true ->
  -			    expr_unification(SubTrees1, SubTrees2, Type);
  +			    expr_unification(SubTrees1, SubTrees2, Type, CheckGen);
   			_ -> false
   		    end
   	    end;
   	_ ->
   	    SubTrees1 = erl_syntax:subtrees(Exp1),
   	    SubTrees2 = erl_syntax:subtrees(Exp2),
  -	    case length(SubTrees1) == length(SubTrees2) of
  -		true ->
  -		    expr_unification(SubTrees1, SubTrees2, Type);
  +            case length(SubTrees1) == length(SubTrees2) of
  +		true ->
  +                    expr_unification(SubTrees1, SubTrees2, Type, CheckGen);
   		_ -> false
   	    end
       end.
   
      
  -non_same_type_expr_unification(Exp1, Exp2,_Type) ->
  +non_same_type_expr_unification(Exp1, Exp2,_Type, CheckGen) ->
       T1 = refac_syntax:type(Exp1),
       case T1 of
         variable ->
  -	    case refac_code_search_utils:generalisable(Exp2) of
  -	      false ->
  +            case CheckGen andalso not (refac_code_search_utils:generalisable(Exp2)) of
  +                true ->
                       false;
  -	      true ->
  +                false ->
                       Exp2Ann = refac_syntax:get_ann(Exp2),
   		    Exp1Name = refac_syntax:variable_name(Exp1),
   		    case lists:keysearch(category, 1, Exp2Ann) of
  -		      {value, {category, application_op}} ->
  +                        {value, {category, application_op}} ->
   			  case lists:keysearch(fun_def, 1, Exp2Ann) of
   			      {value, {fun_def, {_M, _N, A, _P1, _P2}}} ->
   				  {true, [{Exp1Name, rm_comments(
  
positive.code: 
  rm_comments(Node) ->
      refac_syntax:remove_comments(Node).
  
negative.code: %% =====================================================================
  -module(unification).
  
  -export([expr_unification/2, expr_unification_extended/2, expr_match/2]).
  
  
  -include("../include/wrangler.hrl").
  