anchor.diff:           label_pair/1]).
   
   -include("prometheus_model.hrl").
  +
  +-type label_name() :: term().
  +-type label_value() :: term().
  +-type label() :: {label_name(), label_value()}.
   
   %%%===================================================================
   %%% Public API
  
positive.code: label_pairs(Labels) -> lists:map(fun label_pair/1, Labels).
  
  %% FIXME: refine
  -spec label_pair({_, _}) -> prometheus_model:'LabelPair'().
  label_pair({Name, Value}) ->
    #'LabelPair'{name  = ensure_binary(Name),
                 value = ensure_binary(Value)}.
  
negative.code: 
  -spec counter_metric(Value) -> prometheus_model:'Metric'() when
      Value  :: {Labels, Val} | {Val} | Val,
      Labels :: [label()],
      Val    :: non_neg_integer().
  counter_metric({Labels, Value}) -> counter_metric(Labels, Value);
  counter_metric({Value})         -> counter_metric([], Value);
  counter_metric(Value)           -> counter_metric([], Value).
  
  -spec counter_metric(Labels, Value) -> prometheus_model:'Metric'() when
      Labels :: [label()],
      Value  :: non_neg_integer().
  counter_metric(Labels, Value) ->
    #'Metric'{label   = label_pairs(Labels),
  