anchor.diff:  	    refac_util:update_ann(refac_util:update_ann(BE, {bound, Bound}), {free, Free});
   	if_expr ->
   	    Clauses = refac_syntax:if_expr_clauses(E),
  -	    NewClauses = lists:concat(lists:map(fun (C) -> process_a_clause(C, Expr) end, Clauses)),
  +	    NewClauses = lists:flatmap(fun (C) -> process_a_clause(C, Expr) end, Clauses),
   	    {Bound, Free} = lists:foldl(fun (C, {Bd, Fr}) ->
   						  {Bd1, Fr1} = {refac_util:get_bound_vars(C), refac_util:get_free_vars(C)},
   						  {ordsets:intersection(Bd, Bd1), ordsets:union(Fr, Fr1)}
  
positive.code:     case NewBody == [refac_syntax:tuple([refac_syntax:atom(error), refac_syntax:atom("Error with evaluation")])] of
        true -> [];
        _ ->
  	  BoundVars = lists:concat(lists:map(fun (P) -> refac_util:get_bound_vars(P) end, Patterns)),
  	  case FreeVars -- BoundVars =/= FreeVars of
  	    true ->  %% Expr uses some of the vars declared in Patterns.
  		C1 = refac_syntax:clause(Patterns, none, NewBody),
  
negative.code: 	    Args = refac_syntax:case_expr_argument(E),
  	    {Bound1, Free1} = {refac_util:get_bound_vars(Args), refac_util:get_free_vars(Args)},
  	    Clauses = refac_syntax:case_expr_clauses(E),
  	    NewClauses = lists:flatmap(fun (C) -> process_a_clause(C, Expr) end, Clauses), %% process each case clause.
  	    {Bound2, Free2} = lists:foldl(fun (C, {Bd, Fr}) ->
  						  {Bd1, Fr1} = {refac_util:get_bound_vars(C), refac_util:get_free_vars(C)},
  						  {ordsets:intersection(Bd, Bd1), ordsets:union(Fr, Fr1)}
  