anchor.diff:  %%
   
   create_tables() ->
  +    %% elements are {Instrument, [ViewAggregation]}
       ViewAggregationTab = ets:new(view_aggregation_tab, [set,
                                                           protected,
                                                           {read_concurrency, true},
  -                                                        {keypos, 2}
  -                                                       ]),
  +                                                        {keypos, 1}]),
       MetricsTab = ets:new(metrics_tab, [set,
                                          public,
                                          {read_concurrency, true},
  -                                       {keypos, 2}
  -                                      ]),
  +                                       {keypos, 2}]),
       {ViewAggregationTab, MetricsTab}.
   
   %% a Measurement's Instrument is matched against Views
  
positive.code:                    Views) ->
      ViewMatches = otel_view:match_instrument_to_views(Instrument, Views),
      lists:map(fun(Reader=#reader{view_aggregation_tab=ViewAggregationTab}) ->
                        Matches = per_reader_aggregations(Reader, Instrument, ViewMatches),
                        ets:insert(ViewAggregationTab, {Instrument, Matches}),
                        update_aggregations(Measurement, Reader, Matches)
                end, Readers).
  
  update_aggregations(#measurement{attributes=Attributes,
  
negative.code: -spec aggregation_module(otel_instrument:t(), otel_view:t(), reader()) -> module().
  aggregation_module(#instrument{kind=Kind}, #view{aggregation_module=undefined},
                     #reader{default_aggregation_mapping=ReaderAggregationMapping}) ->
      maps:get(Kind, ReaderAggregationMapping);
  aggregation_module(_Instrument, #view{aggregation_module=Module}, _Reader) ->
      Module.
  