anchor.diff:  
   new() -> #ephp_array{}.
   
  -new(Module, Function) ->
  -    #ephp_array{trigger = {Module, Function}}.
  +new(Module, Function, Args) ->
  +    #ephp_array{trigger = {Module, Function, Args}}.
   
   size(#ephp_array{size=Size}) -> Size.
   
  
positive.code:         false -> error
      end;
  
  find(Key, #ephp_array{trigger={Module,Function}}=Array) ->
      Module:Function(Array, {retrieve, Key}).
  
  store(auto, Value, #ephp_array{last_num_index=Key, values=Values}=Array) ->
      report(Array#ephp_array{
  
negative.code: fold(Fun, Initial, #ephp_array{values=Values, trigger=undefined}) ->
      lists:foldl(fun({K,V}, Acc) -> Fun(K, V, Acc) end, Initial, Values);
  
  fold(Fun, Initial, #ephp_array{trigger={Module,Function,Args}}=Array) ->
      NewFun = fun({K,V},Acc) -> Fun(K,V,Acc) end,
      apply(Module, Function, Args ++ [Array, {fold, NewFun, Initial}]).
  
  to_list(#ephp_array{values=Values, trigger=undefined}) ->
      Values;
  
  to_list(#ephp_array{trigger={Module,Function,Args}}=Array) ->
      apply(Module, Function, Args ++ [Array, to_list]).
  
  %% -----------------------------------------------------------------------------
  %% Internal functions
  