anchor.diff:      {not_found, lists:reverse([CurrentKey | ProcessedKeys])}.
   
   
  -if_parent_found(IData, Key, Fun) ->
  -    ParentName = node_addr:parent(Key),
  -    case node_find(IData, ParentName) of
  -        {node, Parent} ->
  -            ChildName = node_addr:basename(Key),
  -            Fun(Parent, ChildName);
  +if_node_found(IData, Address, Fun) ->
  +    case node_find(IData, Address) of
           {not_found, InvalidAddress} ->
  -            {not_found, InvalidAddress}
  +            {not_found, InvalidAddress};
  +        Node ->
  +            Fun(Node)
       end.
   
  -if_parent_found(IData, Key, Mod, Fun, Args) ->
  -    Fun_Mfa = fun(Parent, ChildName) -> 
  -            apply(Mod, Fun, [Parent, ChildName | Args])
  +if_node_found(IData, Address, Mod, Fun, Args) ->
  +    Fun_Mfa = fun(Node) -> 
  +            apply(Mod, Fun, [Node | Args])
       end,
  -    if_parent_found(IData, Key, Fun_Mfa).
  +    if_node_found(IData, Address, Fun_Mfa).
  
positive.code:         node_write/3,
          node_read/1,
          node_read/2,
          if_parent_found/3,
          if_parent_found/5,
          walk_tree_set_node/5
      ]).
  
  
negative.code:     {c, '', []}.
  
  
  set(IData, Address, Value) when is_atom(Address) ->
      if_node_found(IData, Address, ?MODULE, walk_tree_set_node, [IData, Address, Value]).
  
  walk_tree_set_node(Parent, ChildName, Parent, _Key, Value) ->
      node_write(Parent, ChildName, Value);
  