anchor.diff:      end.
   
   
  --spec skipped_metrics(My::[load_data()|load_data_skipped()],
  -                      Other::[load_data()|load_data_skipped()]) -> list(atom()).
  -skipped_metrics(MyData, OtherData) ->
  -    Modules1 = [Module || {load_data, Module, skip} <- MyData],
  -    Modules2 = [Module || {load_data, Module, skip} <- OtherData],
  -    lists:usort(lists:append(Modules1, Modules2)).
  -
  -
  --spec replace_skipped(Other::load_data_list(), Data::data(),
  -                      SkippedMetrics::[atom()]) -> data().
  -replace_skipped(_, Data, []) ->
  -    Data;
  -
  -replace_skipped(OtherDatas, Data, [Metric|Rest]) ->
  -    case lists:keyfind(Metric, 2, OtherDatas) of
  -        {load_data, Metric, skip} ->
  -            replace_skipped(OtherDatas, Data, Rest);
  -        OtherLoadData ->
  -            NewLoadData = lists:keyreplace(Metric, 2, element(1,Data), OtherLoadData),
  -            replace_skipped(OtherDatas, {NewLoadData, element(2, Data)}, Rest)
  -    end.
  +%% @doc Replaces skipped metrics in My load list with non-skipped values from
  +%%      the other load list if possible.
  +-spec replace_skipped(Other::LoadDataList, My::LoadDataList) -> LoadDataList
  +        when is_subtype(LoadDataList, [load_data() | load_data_skipped()]).
  +replace_skipped([], []) ->
  +    [];
  +replace_skipped([H | OtherL], [{load_data, Metric, skip} | MyL]) ->
  +    ?ASSERT(Metric =:= data_get(name, H)),
  +    [H | replace_skipped(OtherL, MyL)];
  +replace_skipped([_OtherH | OtherL], [MyH | MyL]) ->
  +    ?ASSERT(data_get(name, _OtherH) =:= data_get(name, MyH)),
  +    [MyH | replace_skipped(OtherL, MyL)].
   
   
   %%---------------------------- Histogram ---------------------------%%
  
positive.code: 
      SelectReplyDataHelper =
          fun (State) ->
                  Metrics = skipped_metrics(state_get(load_data_list, State), element(1, PData)),
                  {Data1, State1} = prepare_data(Metrics, State),
                  Data2 = replace_skipped(element(1, PData), Data1, Metrics),
                  Pid = pid_groups:get_my(gossip),
                  comm:send_local(Pid, {selected_reply_data, state_get(instance, State1), Data2, Ref, Round}),
                  {_Data2, State2} = merge_load_data(PData, State1),
  
negative.code:         uninit ->
              request_node_details(CurState), CurState;
          init ->
              {Data, NewCurState1} = prepare_data([], CurState),
              Pid = pid_groups:get_my(gossip),
              comm:send_local(Pid, {selected_data, state_get(instance, NewCurState1), Data}),
              NewCurState1
  