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: 
  %% Data access per key (read,write,delete)
  
  read(Channel, Item, KeyTable) when is_binary(Channel), is_binary(Item), is_binary(KeyTable) ->
  	Cmd = [read,Channel,Item,KeyTable],
  	read(Cmd, create_check_channel(Channel), Item, io_key_table_to_term_list(KeyTable), []).
  
  read(Cmd, _, Item, [], Acc)  -> project_result(Cmd, lists:reverse(Acc), Item);
  read(Cmd, {TN,AN}, Item, [Key|Keys], Acc)  ->
  	KVP = case imem_meta:read(TN,Key) of
  		[] ->		#skvhTable{ckey=Key} ;
  		[Rec] ->	Rec
  	end,
  	read(Cmd, {TN,AN}, Item, Keys, [KVP|Acc]).
  	
  
  write(Channel, KVTable) when is_binary(Channel), is_binary(KVTable) ->
  