anchor.diff:                                       {[], ScratchDir}, Members),
               [{Path, Rewrite(Value)}|Existing]
       end;
  +%% TODO: deprecate 'extra' as it is no longer used
   extend({extra, [{_, _, _}|_]=Stuff}, Existing) ->
       Items = [{M,F,[hd(extend(A, Existing)) || A <- Args]} ||
                                                           {M,F,Args} <- Stuff],
  
positive.code:         _ ->
              lists:keyreplace(K, 1, Existing, New)
      end;
  extend({environment, _}=New, Existing) ->
      [New|Existing];
  extend({environment, _, _}=New, Existing) ->
  
negative.code: merge(New, Existing) ->
      append_if_missing(fun lists:member/2, New, Existing).
  
  %% TODO: this head (clause) isn't used any more!?
  extend({Path, Spec}=New, Existing) when Path =:= dir orelse
                                          Path =:= file ->
      %% TODO: this isn't very flexible - make it simpler to use...
  