anchor.diff:  %% Adjusts duration, so that it is in the most condensed and simplified unit.
   %% @end
   %%--------------------------------------------------------------------
  --spec adjust_duration(Duration :: integer(), TimeUnit :: time_unit()) ->
  -    {AdjustedDuration :: integer(), AdjustedTimeUnit :: time_unit()}.
  +-spec adjust_duration(Duration :: integer() | float(), TimeUnit :: time_unit()) ->
  +    {AdjustedDuration :: integer() | float(), AdjustedTimeUnit :: string()}.
   adjust_duration(Duration, Unit) ->
       {NextUnit, Factor} = next_time_unit(Unit),
       case (Duration > Factor) and (NextUnit /= undefined) of
  
positive.code: %% @end
  %%--------------------------------------------------------------------
  -spec seconds_diff(Timestamp2 :: erlang:timestamp(),
      Timestamp1 :: erlang:timestamp()) -> SecondsDiff :: integer().
  seconds_diff(Timestamp2, Timestamp1) ->
      timer:now_diff(Timestamp2, Timestamp1) / 1000000.
  
  
negative.code: %% @end
  %%--------------------------------------------------------------------
  -spec duration(Function :: fun(() -> Result)) -> {Result, UsDuration :: integer(),
      AdjustedDuration :: integer() | float(), TimeUnit :: string()} when
      Result :: term().
  duration(Function) ->
      T1 = os:timestamp(),
  