anchor.diff:  
   %% @private
   collect_metrics(Name, {Labels, Registry, DU}) ->
  -  [summary_metric(lists:zip(Labels, LabelValues), Count,
  -                  prometheus_time:maybe_convert_to_du(DU, Sum)) ||
  -    [LabelValues, Count, Sum] <- ets:match(?TABLE, {{Registry, Name, '$1'},
  -                                                    '$2', '$3'})].
  +  MFValues = ets:match(?TABLE, {{Registry, Name, '$1', '_'}, '$2', '$3'}),
  +  [begin
  +     {Count, Sum} = reduce_label_values(LabelValues, MFValues),
  +     summary_metric(lists:zip(Labels, LabelValues), Count,
  +                    prometheus_time:maybe_convert_to_du(DU, Sum))
  +   end ||
  +    LabelValues <- collect_unique_labels(MFValues)].
   
   %%====================================================================
   %% Gen_server API
  
positive.code: %% mismatch.
  %% @end
  remove(Registry, Name, LabelValues) ->
    prometheus_metric:remove_labels(?TABLE, Registry, Name, LabelValues).
  
  %% @equiv reset(default, Name, [])
  reset(Name) ->
  
negative.code: value(Registry, Name, LabelValues) ->
    MF = prometheus_metric:check_mf_exists(?TABLE, Registry, Name, LabelValues),
    DU = prometheus_metric:mf_duration_unit(MF),
  
    case ets:select(?TABLE, [{{{Registry, Name, LabelValues, '_'}, '$1', '$2'},
                              [],
                              ['$$']}]) of
      [] -> undefined;
      Values -> {Count, Sum} = reduce_values(Values),
                {Count,  prometheus_time:maybe_convert_to_du(DU, Sum)}
    end.
  
  %%====================================================================
  