anchor.diff:      {I0, H, NewData};
   
   update([H] = Key, F, Initial, {I0, I1, Data})
  -    when is_integer(H) ->
  +    when is_integer(H), is_function(F, 1) ->
       I = H - I0 + 1,
       {Node, Value} = erlang:element(I, Data),
       if
  
positive.code:                 false ->
                      error
              end
      end.
  
  %%-------------------------------------------------------------------------
  %% @doc
  
negative.code:     end;
  
  update([H | T] = Key, F, Initial, {I0, I1, Data})
      when is_integer(H), is_function(F, 1) ->
      I = H - I0 + 1,
      {Node, Value} = erlang:element(I, Data),
      case Node of
  