anchor.diff:  
   
   -export([ write/2 		%% (Channel, KVTable)    			resource may not exist, will be created, return list of hashes 
  -		, read/2		%% (Channel, KeyTable)   			return empty Arraylist if none of these resources exists
  +		, read/3		%% (Channel, KeyTable)   			return empty Arraylist if none of these resources exists
   		, readGELT/4	%% (Channel, Item, CKey1, CKey2)	start with first key after CKey1, end with last key before CKey2
    		, readGT/4		%% (Channel, Item, CKey1, Limit)	start with first key after CKey1, return Limit results or less
    		, delete/2		%% (Channel, KeyTable)    			do not complain if keys do not exist
  
positive.code: term_key_to_io(Key) ->
  	imem_datatype:term_to_io(Key).
  
  term_value_to_io(V) -> V.   %% ToDo: Maybe convert from map datatype when available
  
  term_hash_to_io(Hash) when is_binary(Hash) -> Hash; 
  term_hash_to_io(Hash) when is_integer(Hash) -> list_to_binary(integer_to_list(Hash)).
  
  
negative.code:         ?Info("audit trail~n~p~n", [Aud]),
          ?assertEqual(6, length(Aud)),
  
          ?assertEqual({ok,[<<"[1,a]",9,"undefined">>]}, read(Channel, <<"kvpair">>, <<"[1,a]">>)),
          ?assertEqual({ok,[<<"[1,b]",9,"undefined">>]}, read(Channel, <<"kvpair">>, <<"[1,b]">>)),
          ?assertEqual({ok,[<<"[1,c]",9,"undefined">>]}, read(Channel, <<"kvpair">>, <<"[1,c]">>)),
  
          ?assertEqual({ok,[<<"1296644">>,<<"124793159">>,<<"117221887">>]}, write(Channel, <<"[1,a]",9,"123456",10,"[1,b]",9,"234567",13,10,"[1,c]",9,"345678">>)),
  
  