anchor.diff:      List = [case dict:find(Index, RDict) of
                   {ok, Val} -> Val;
                   error     -> undefined
  -            end || Index <- lists:seq(1, length(Structure))],
  +            end || Index <- IndexList],
       {ok, list_to_tuple(List)};
   
   read(IProto, {struct, {Module, StructureName}}) when is_atom(Module),
  
positive.code: %% Structure is like:
  %%    [{Fid, Type}, ...]
  read(IProto, {struct, Structure}) when is_list(Structure) ->
      SWithIndices = [{Fid, {Type, Index}} ||
                         {{Fid, Type}, Index} <-
                             lists:zip(Structure, lists:seq(1, length(Structure)))],
      % Fid -> {Type, Index}
      SDict = dict:from_list(SWithIndices),
  
  
negative.code: 
      List = [{Key, Val} || {{ok, Key}, {ok, Val}} <- 
                                [{read(IProto, KeyType),
                                  read(IProto, ValType)} || _X <- lists:duplicate(Size, 0)]],
      ok = read(IProto, map_end),
      {ok, dict:from_list(List)};
  
  