anchor.diff:  %% Calculates network usage statistics, given current and previous measurements.
   %% @end
   %%--------------------------------------------------------------------
  --spec calculate_network_stats(NetworkStats, NetworkStats, Result, TimeElapsed :: float()) -> Result when
  -    NetworkStats :: [{rx_b | tx_b | rx_p | tx_p, Name :: binary(), Value :: integer()}],
  -    Result :: [{Name :: binary(), Value :: integer() | float()}].
  +-spec calculate_network_stats(CurrentNetworkStats, NetworkStats, Stats, TimeElapsed :: float()) -> Result when
  +    CurrentNetworkStats :: [{rx_b | tx_b | rx_p | tx_p | maxthp, Name :: binary(), Value :: float()}],
  +    NetworkStats :: [{rx_b | tx_b | rx_p | tx_p | maxthp, Name :: binary(), Value :: float()}],
  +    Stats :: [{Name :: binary(), Value :: float()}],
  +    Result :: [{Name :: binary(), Value :: float()}].
   % Last net stats were not given (probably first calculation), return empty result.
   calculate_network_stats(_, [], [], _) ->
       [];
  
positive.code: %% If the interface works in full duplex, the potential throughput is doubled.
  %% @end
  %%--------------------------------------------------------------------
  -spec get_interface_max_throughput(Interface :: string(), TimeElapsed :: integer()) -> non_neg_integer().
  get_interface_max_throughput(Interface, TimeElapsed) ->
      DuplexRatio = case file:read_file(?NET_DUPLEX_FILE(Interface)) of
                        {ok, <<"full\n">>} -> 2;
  
negative.code: -spec get_memory_stats() -> [{Name :: binary(), Value :: float()}].
  get_memory_stats() ->
      case file:open(?MEM_STATS_FILE, [read]) of
          {ok, Fd} -> read_memory_stats(Fd, 0, 0, 0);
          _ -> [{<<"error">>, 0.0}]
      end.
  
  
  