anchor.diff:  -include("../include/wrangler.hrl").
   
   %% =============================================================================================
  +%% <p>
  +%% Usage: Point the cursor to the function name in the function application to unfold, then 
  +%% select <em>Unfold Function Application</em> from <em>Refactor</em>.
  +%% </p>
  +%%-spec(unfold_fun_app/4::(FileName::filename(), Pos::pos(), SearchPaths::[dir()], TabWidth::integer)
  +%%      ->{error, string()} |{'ok', [string()]}).
   -spec(unfold_fun_app/4::(FileName::filename(), Pos::pos(), SearchPaths::[dir()], TabWidth::integer)
         ->{'ok', [string()]} | {error, string()}).
   unfold_fun_app(FileName, Pos, SearchPaths, TabWidth) ->
  
positive.code: %% OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 
  %% ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  %% ============================================================================================
  %% Refactoring: Unfold a function application.
  %% This refactoring replaces a function application with the function definition whose formal 
  %% parameters being replaced by actual parameters. Some remarks about the implementation:
  %% 1) This refactoring does automatic variable renaming of variables decared in the function 
  %% to be inlined if there would be a name capture/conflict without doing so;
  %% 2) In the case that the function definition has multiple clause, Wrangler tries to work out 
  
negative.code: 	  char -> true;
  	  string -> true;
  	  nil -> true;
  	  fun_expr -> true;
  	  list ->
  	      case is_non_reducible_term(refac_syntax:list_head(T)) of
  		  true -> is_non_reducible_term(refac_syntax:list_tail(T));
  