anchor.diff:               end,
       {ValueNew, NewCtx1} = lists:foldl(fun(F, {Acc, CtxAcc}) ->
           case F of
  -            {clause, _} ->
  +            {ListType, _}
  +                when Type == clauseList, ListType == clause;
  +                Type == hintList, ListType == hint;
  +                Type == nodeLabels, ListType == nodeLabel ->
  +                ?debugFmt("wwe debugging fold/5 ===> ~n F: ~p~n", [F]),
  +                {SubAcc, CtxAcc1} = fold(FType, Fun, CtxAcc, Lvl + 1, F),
  +                {Acc ++ case length(Acc) of
  +                            0 -> [];
  +                            _ -> " "
  +                        end ++ SubAcc, CtxAcc1};
  +            {ListType, _, _}
  +                when Type == hintList, ListType == hint;
  +                Type == mergeActionList, ListType == mergeAction;
  +                Type == unionList, ListType == union ->
  +                ?debugFmt("wwe debugging fold/5 ===> ~n F: ~p~n", [F]),
  +                {SubAcc, CtxAcc1} = fold(FType, Fun, CtxAcc, Lvl + 1, F),
  +                {Acc ++ case length(Acc) of
  +                            0 -> [];
  +                            _ -> " "
  +                        end ++ SubAcc, CtxAcc1};
  +            {ListType, _, _, _}
  +                when Type == hintList, ListType == hint ->
                   ?debugFmt("wwe debugging fold/5 ===> ~n F: ~p~n", [F]),
                   {SubAcc, CtxAcc1} = fold(FType, Fun, CtxAcc, Lvl + 1, F),
                   {Acc ++ case length(Acc) of
  
positive.code:     RT;
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % unionList
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
  fold(FType, Fun, Ctx, Lvl, {unionList, Values} = ST)
      when is_list(Values) ->
      ?debugFmt("wwe debugging fold/5 ===> Start ~p~n ST: ~p~n", [Lvl, ST]),
      NewCtx = case FType of
                   top_down -> Fun(ST, Ctx);
                   bottom_up -> Ctx
               end,
      {ValueNew, NewCtx1} = lists:foldl(fun(F, {Acc, CtxAcc}) ->
          case F of
              {union, _, _} ->
                  ?debugFmt("wwe debugging fold/5 ===> ~n F: ~p~n", [F]),
                  {SubAcc, CtxAcc1} = fold(FType, Fun, CtxAcc, Lvl + 1, F),
                  {Acc ++ case length(Acc) of
                              0 -> [];
                              _ -> " "
                          end ++ SubAcc, CtxAcc1}
          end
                                        end,
          {[], NewCtx},
          Values),
      NewCtx2 = case FType of
                    top_down -> NewCtx1;
                    bottom_up -> Fun(ST, NewCtx1)
                end,
      RT = {ValueNew, NewCtx2},
      ?debugFmt("wwe debugging fold/5 ===> ~n RT: ~p~n", [RT]),
      RT;
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % unwind
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
  
negative.code:               where -> "where ";
                _ -> []
            end ++ ValueNew, NewCtx2},
      ?debugFmt("wwe debugging fold/5 ===> ~n RT: ~p~n", [RT]),
      RT;
  
  