anchor.diff:          {ok, {[{ParseTree,_}|_], Tokens}} -> 
               if ShowParseTree ->
           	    io:format(user, "~p~n", [ParseTree]),
  -                {NSql, _} = foldi(ParseTree),
  -                io:format(user,  "~n> " ++ NSql ++ "~n", []),
  +                NSql = pt_to_string(ParseTree),
  +                io:format(user,  "~n> ~s~n", [NSql]),
                   {ok, {[{NPTree,_}|_], NToks}} = sqlparse:parsetree(NSql),
                   try
                       ParseTree = NPTree
  
positive.code: %%                                  COMPILER
  %%-----------------------------------------------------------------------------
  
  -spec fold(tuple()) -> {error, term()} | binary().
  fold(PTree) -> fold(PTree, fun(_,_) -> null_fun end, null_fun).
  
  -spec fold(tuple(), fun(), term()) -> {error, term()} | binary().
  fold(PTree, Fun, Ctx) when is_function(Fun, 2) ->
      try foldi(PTree, Fun, Ctx) of
          {error,_} = Error -> Error;
          {Sql, null_fun = Ctx} -> list_to_binary(string:strip(Sql));
  
negative.code: -export([init/1]).
  
  % parser and compiler interface
  -export([pt_to_string/1, foldtd/3, parsetree/1, is_reserved/1]).
  
  -ifdef(TEST).
  % eunit helper function
  