anchor.diff:           get_ets_call_stats/1]).
   
   %% Test
  --export([split_traces_by_pid/1]).
  +-export([split_traces_by_pid/1,
  +         split_traces_by_tab/1,
  +         split_traces_by_func/1]).
   
   %%====================================================================
   %% API functions
  
positive.code:     List = erlang:float_to_list(Float, [{decimals, Pos}]),
      erlang:list_to_float(List).
  
  namify_val(Val) when is_atom(Val) ->
      namify(Val);
  namify_val(Val) ->
  
negative.code:     {Tab, [calculate_tab_func_statistics(FuncStat) || FuncStat <- FuncStats]}.
      
  calculate_tab_func_statistics({Func, TimeProbes}) ->
      #{<<"func">> => namify(Func), <<"max_time">> => max(TimeProbes), 
        <<"count">> => erlang:length(TimeProbes)}.
  
  split_traces_by_pid(Traces) ->
      split_traces_by(Traces, 1).
  
  split_traces_by_tab(Traces) ->
      split_traces_by(Traces, 2).
  
  split_traces_by_func(Traces) ->
      split_traces_by(Traces, 3).
  
  split_traces_by(Traces, ElemNum) ->
      TracesUnique = lists:ukeysort(ElemNum, Traces),
      KeysUnique = lists:map(fun(T) -> element(ElemNum, T) end, TracesUnique),
      Splitted = [lists:partition(fun(T) -> element(ElemNum, T) =:= KU end, 
                                  Traces) || KU <- KeysUnique],
      lists:map(fun({S, _NS}) -> S end, Splitted).
  
  format_traces_TFT(TraceLists) ->
  