anchor.diff:  write_audit(OldRec,NewRec,Table,User) ->
   	["","",CH,"","",""] = imem_meta:parse_table_name(Table),
   	CL = case {OldRec,NewRec} of
  -		{{},{}} ->	[{?TIME,undefined,undefined,undefined}];				% truncate table
  +		{{},{}} ->	[{?TIME,sext:encode(undefined),undefined,undefined}];			% truncate table
   		{_,{}} ->	[{?TIME,element(2,OldRec),element(3,OldRec),undefined}]; 		% delete old rec
   		{{},_} ->	[{?TIME,element(2,NewRec),undefined,element(3,NewRec)}];		% insert new rec
   		{_, _} ->	
  
positive.code: audit_project_result(Cmd, L, <<"kvpair">>) ->
  	return_stringlist(Cmd, [term_kv_tuple_to_io({K,V}) ||  #skvhAudit{ckey=K,nvalue=V} <- L]);
  audit_project_result(Cmd, L, <<"kvtriple">>) ->
  	return_stringlist(Cmd, [term_kv_tuple_to_io({K,O,N}) ||  #skvhAudit{ckey=K,ovalue=O,nvalue=N} <- L]);
  audit_project_result(Cmd, L, <<"tkvtriple">>) ->
  	return_stringlist(Cmd, [term_tkv_triple_to_io({T,K,V}) ||  #skvhAudit{time=T,ckey=K,nvalue=V} <- L]);
  audit_project_result(Cmd, L, <<"tkvquadruple">>) ->
  
negative.code: audit_project_result(Cmd, L, <<"tkvuquadruple">>) ->
  	return_stringlist(Cmd, [term_tkvu_quadruple_to_io({T,K,V,U}) ||  #skvhAudit{time=T,ckey=K,nvalue=V,cuser=U} <- L]);
  audit_project_result(Cmd, L, <<"tkvuquintuple">>) ->
  	return_stringlist(Cmd, [term_tkvu_quintuple_to_io({T,K,O,N,U}) ||  #skvhAudit{time=T,ckey=K,ovalue=O,nvalue=N,cuser=U} <- L]).
  
  debug(Cmd, Resp) ->
      lager:debug([ {cmd, hd(Cmd)}]
  