anchor.diff:              lists:sum(NoToksAdded)},
       {Content, Change}.
   
  -print_a_form(Form, FileFmt, Options, TabWidth) ->
  +print_a_form_and_get_changes(Form, FileFmt, Options, TabWidth) ->
       case form_not_changed(Form) of
           true ->
               FormStr=wrangler_misc:concat_toks(wrangler_misc:get_toks(Form)),
               {FormStr, {0, 0, 0}};
           false ->
  -            print_a_form_and_get_changes(Form, FileFmt, Options, TabWidth)
  +            print_a_form_and_get_changes_1(Form, FileFmt, Options, TabWidth)
       end.
    
          
  -print_a_form_and_get_changes(Form, FileFormat, Options, TabWidth) ->
  +print_a_form_and_get_changes_1(Form, FileFormat, Options, TabWidth) ->
  +    {OrigFormStr, NewFormStr} = pp_a_form_1(Form, FileFormat, Options, TabWidth),
  +    {ok, OrigToks, _} = wrangler_scan:string(OrigFormStr),
  +    {ok, NewToks, _} = wrangler_scan:string(NewFormStr),
  +    Change =get_changes(OrigToks, NewToks),
  +    {NewFormStr, Change}.
  +
  + 
  +pp_a_form(Form, FileFormat, Options, TabWidth) ->
  +    case form_not_changed(Form) of
  +        true ->
  +            wrangler_misc:concat_toks(wrangler_misc:get_toks(Form));
  +        false ->
  +            element(2, pp_a_form_1(Form, FileFormat, Options, TabWidth))
  +    end.
  +
  +pp_a_form_1(Form, FileFormat, Options, TabWidth) ->
       Ctxt = #ctxt{hook  = proplists:get_value(hook,Options,?NOHOOK),
   		 paper = proplists:get_value(paper,Options,?PAPER),
   		 ribbon = proplists:get_value(ribbon,Options,?RIBBON),
  
positive.code: 
  print_ast_and_get_changes(FileFmt, AST, Options, TabWidth) ->
      Fs = wrangler_syntax:form_list_elements(AST),
      %% {FmStrs, C} = lists:unzip([print_a_form(reset_attrs(F), FileFmt, Options, TabWidth)|| F<-Fs]),
      {FmStrs, C} = lists:unzip([print_a_form(F, FileFmt, Options, TabWidth)|| F<-Fs]),
      Content = lists:append(FmStrs),
      {NoFunsChanged, NoToksRemoved, NoToksAdded} =lists:unzip3(C),
      Change={lists:sum(NoFunsChanged), 
  
negative.code: 		 tokens = wrangler_misc:get_toks(Form)},
      OrigFormStr=wrangler_misc:concat_toks(wrangler_misc:get_toks(Form)),
      NewFormStr0= print_form(Form,reset_prec(Ctxt),fun lay/2),
      NewFormStr=repair_new_form_str(OrigFormStr, NewFormStr0, TabWidth, FileFormat),
      {OrigFormStr, NewFormStr}.
     
  get_changes(OrigToks, NewToks) ->
      OrigToks1 = remove_locs_whites_and_comments(OrigToks),
      NewToks1 = remove_locs(NewToks),
  