anchor.diff:  			end
   	end,
   	delete(User, Cmd, SkvhCtx, Keys, [term_hash_to_io(Hash)|Acc]).
  +
  +read_shallow(_User, _Channel, []) -> [];
  +read_shallow(User, Channel, [Key | Keys]) ->
  +    KeyLen = length(binterm_to_term_key(Key)) + 1,
  +    [SkvhRow || #{ckey := CK} = SkvhRow <- read_deep(User, Channel, [Key]),
  +                length(CK) == KeyLen]
  +    ++ read_shallow(User, Channel, Keys).
  +
  +% imem_dal_skvh:read_deep(system, <<"tpac">>, [["0728896850","ipcon","0728896884"]]).
  +read_deep(_User, _Channel, []) -> [];
  +read_deep(User, Channel, [Key | Keys]) ->
  +    StartKey = term_key_to_binterm(Key),
  +    EndKey = term_key_to_binterm(binterm_to_term_key(Key)
  +                                 ++ [<<255>>]),
  +    TableName = atom_table_name(Channel),
  +    {SkvhRows, true} = imem_meta:select(
  +                         TableName,
  +                         [{#skvhTable{ckey='$1', cvalue = '$2', chash = '$3'},
  +                           [{'andalso',{'>','$1',StartKey},{'<','$1',EndKey}}],
  +                           ['$_']}]),
  +    [skvh_rec_to_map(SkvhRow) || SkvhRow <- SkvhRows]
  +    ++ read_deep(User, Channel, Keys).
   
   %% Raw data access per key (read, insert, remove)
   read(_User, _Channel, []) -> [];
  
positive.code: -spec expand_inline_key(User :: any(), Channel :: binary(), Key :: any()) ->
      Json :: binary().
  expand_inline_key(User, Channel, Key) ->
      case imem_dal_skvh:read(User, Channel, [Key]) of
          [] -> [];
          [#{cvalue := Json}] -> expand_inline(User, Channel, Json)
      end.
  
negative.code:               case re:run(K, "^inline_*") of
                    nomatch -> Acc;
                    _ ->
                        case read(User, Channel,
                                  [imem_json_data:to_strbinterm(V)]) of
                            [] -> Acc;
                            [#{cvalue := BVal}] -> [{V, BVal} | Acc]
                        end
  