anchor.diff:  		error -> transform(Operator, Rest)
   	end.
   
  -rewrite(Operator, NodeKey) when is_function(Operator), is_map(NodeKey) ->
  +rewrite(Operator, NodeKey) when is_function(Operator), is_tuple(NodeKey) ->
   	{ok, Node} = plywood_db:fetch(primary_tree, NodeKey),
   	NewNode = Operator(Node),
   	case maps:find(children, NewNode) of
  
positive.code: makeNodeID(Parts, Sep) -> << << Sep/binary, Part/binary>> || Part <- Parts, Part =/= <<"/">> >>.
  
  traverse(_Operator, []) -> ok;
  traverse(Operator, [NodeKey |Rest]) when is_function(Operator), is_map(NodeKey) ->
  	{ok, #{ id := Id, name := Name } = Node} = plywood_db:fetch(primary_tree, NodeKey),
  	case maps:find(data, Node) of
  		{ok, Data} -> [ Operator(Datum, Id, Name) || Datum <- Data];
  
negative.code: 	end.
  
  accumulate(_Operator, Acc, []) -> Acc;
  accumulate(Operator, Acc, [NodeKey |Rest]) when is_function(Operator), is_tuple(NodeKey) ->
  	{ok, #{ id := Id, name := Name } = Node} = plywood_db:fetch(primary_tree, NodeKey),
  	NodeAcc = case maps:find(data, Node) of
  		{ok, Data} -> lists:foldl(fun(Datum, AccIn) -> Operator(Datum, AccIn, Id, Name) end, Acc, Data);
  