anchor.diff:  noop_iterator(_, Acc) ->
       {undefined, Acc}.
   
  +all_iterator({start, Name, _Value}, {CurPath, PrevFilters, [], Results}) ->
  +    io:format("name=~p~n", [Name]),
  +    NextPath = [Name|CurPath],
  +    NextResults = [lists:reverse(NextPath)|Results],
  +    {undefined, {NextPath, PrevFilters, [], NextResults}};
  +all_iterator({stop, Name}, {[Name | CurPath], PrevFilters, FRest, Results}) ->
  +    {undefined, {CurPath, PrevFilters, FRest, Results}}.
  +
  +apply_filter(Name, {CurPath, PrevFilters, [all], Results}) ->
  +    NextPath = [Name|CurPath],
  +    NextResults = [lists:reverse(NextPath)|Results],
  +    {fun all_iterator/2, {NextPath, [all|PrevFilters], [], NextResults}};
   apply_filter(Name, {CurPath, PrevFilters, [FHead], Results}) ->
       NextPath = [Name|CurPath],
       NextResults = case FHead of
  
positive.code:                       Name -> [lists:reverse(NextPath)|Results];
                        _ -> Results
                    end,
      {fun ehome_vtree:noop_iterator/2,
          {NextPath, [FHead|PrevFilters], [], NextResults}};
  apply_filter(Name, {CurPath, PrevFilters, [FHead|FRest], Results}) ->
      Acc = {[Name|CurPath], [FHead|PrevFilters], FRest, Results},
  
negative.code:         _ -> {fun ehome_vtree:noop_iterator/2, Acc}
      end.
  
  -spec create_filter_iterator([all | any | any()]) ->
      {IteratorFun :: iterator(), IteratorAcc :: any()}.
  create_filter_iterator(Filter) ->
      {
  