anchor.diff:                               cover_context = CoverContext,
                                range = Range} <- Entries].
   
  +-spec encode_ts_range({ts_range(), binary()}) -> #tsrange{}.
   encode_ts_range({{FieldName, {{StartVal, StartIncl}, {EndVal, EndIncl}}}, Text}) ->
       #tsrange{field_name            = FieldName,
                lower_bound           = StartVal,
  
positive.code: %% Copied and modified from riak_kv_pb_coverage:convert_list. Would
  %% be nice to collapse them back together, probably with a closure,
  %% but time and effort.
  encode_cover_list(Entries) ->
      [#tscoverageentry{ip = IP, port = Port,
                        cover_context = Context,
                        range = encode_ts_range({Range, SQLText})}
       || {{IP, Port}, Context, Range, SQLText} <- Entries].
  
  decode_cover_list(Entries) ->
      [begin
           {RangeStruct, Text} = decode_ts_range(Range),
  
negative.code:              desc                  = Text
              }.
  
  -spec decode_ts_range(#tsrange{}) -> {ts_range(), binary()}.
  decode_ts_range(#tsrange{field_name            = FieldName,
                           lower_bound           = StartVal,
                           lower_bound_inclusive = StartIncl,
  