anchor.diff:  	end.
   
   is_row_type(map, R) when is_map(R) -> R;
  +is_row_type(map, R) when is_list(R) -> 
  +    [if not is_map(H) -> 
  +        ?ClientError({"Bad datatype, expected map", R});
  +        true -> H
  +     end || H <- R];
   is_row_type(map, R) -> ?ClientError({"Bad datatype, expected map", R});
   is_row_type(list, R) when is_list(R) -> R;
   is_row_type(list, R) -> ?ClientError({"Bad datatype, expected list", R});
   is_row_type(binary, R) when is_binary(R) -> R;
   is_row_type(binary, R) -> ?ClientError({"Bad datatype, expected binary", R}).
  +
   
   %% @doc Checks existence of interface tables for Channel 
   %% return atom names of the tables (MasterTable, AuditTable and HistoryTable if present)
  
positive.code:         Map3 = #{ckey => ["1", "b"], cvalue => <<"{\"testKey\": \"b\", \"testNumber\": 100}">>, chash => <<"3MBW5">>},
          Map4 = #{ckey => ["1", "c"], cvalue => <<"{\"testKey\": \"c\", \"testNumber\": 250}">>, chash => <<"1RZ299">>},
          Map5 = #{ckey => ["1", "d"], cvalue => <<"{\"testKey\": \"d\", \"testNumber\": 300}">>, chash => <<"1DKGDA">>},
  
          %% Keys not in the table.
          FirstKey = [""],
  
negative.code: 
          %% Test insert using encoded key
          ?assertEqual(Map3, insert(system, ?Channel, imem_datatype:term_to_binterm(maps:get(ckey, Map3)), maps:get(cvalue, Map3))),
  
          %% Test insert using list of maps
          ?assertEqual(Map6, insert(system, <<"mapChannel">>, imem_datatype:term_to_binterm(maps:get(ckey, Map6)), maps:get(cvalue, Map6))),
  
          %% Test insert using maps
          ?assertEqual([Map4, Map5], insert(system, ?Channel, [Map4#{chash := <<>>}, Map5#{chash := <<>>}])),
  