anchor.diff:  walk_tree_set_node(Parent, ChildName, IData, Key, Value) -> 
       NewValue = node_write(Parent, ChildName, Value), 
       NewKey = node_addr:parent(Key),
  -    if_parent_found(IData, NewKey, ?MODULE, walk_tree_set_node, [IData, NewKey, NewValue]).
  +    if_node_found(IData, NewKey, ?MODULE, walk_tree_set_node, [IData, NewKey, NewValue]).
   
   
  -get(IData, Key) when is_atom(Key) ->
  -    Fun = fun(Parent, ChildName) ->
  -            node_read(Parent, ChildName)
  +get(IData, Address) when is_atom(Address) ->
  +    Fun = fun(Node) ->
  +            node_read(Node)
       end,
  -    if_parent_found(IData, Key, Fun).
  +    if_node_found(IData, Address, Fun).
   
   
   node_write({c, _ParentName, _Container}=ParentNode, Key, Value) ->
  
positive.code:     {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);
          {not_found, InvalidAddress} ->
              {not_found, InvalidAddress}
      end.
  
  if_parent_found(IData, Key, Mod, Fun, Args) ->
      Fun_Mfa = fun(Parent, ChildName) -> 
              apply(Mod, Fun, [Parent, ChildName | Args])
      end,
      if_parent_found(IData, Key, Fun_Mfa).
  
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);
  