
  -type time_unit() ::
            pos_integer() |
            second | millisecond | microsecond | nanosecond | native |
            perf_counter |
            deprecated_time_unit().

  Supported time unit representations:

  PartsPerSecond :: integer() >= 1:
    Time unit expressed in parts per second. That is, the time
    unit equals 1/PartsPerSecond second.

  second:
    Symbolic representation of the time unit represented by the
    integer 1.

  millisecond:
    Symbolic representation of the time unit represented by the
    integer 1000.

  microsecond:
    Symbolic representation of the time unit represented by the
    integer 1000_000.

  nanosecond:
    Symbolic representation of the time unit represented by the
    integer 1000_000_000.

  native:
    Symbolic representation of the native time unit used by the
    Erlang runtime system.

    The native time unit is determined at runtime system start,
    and remains the same until the runtime system terminates. If a
    runtime system is stopped and then started again (even on the
    same machine), the native time unit of the new runtime
    system instance can differ from the native time unit of the
    old runtime system instance.

    One can get an approximation of the native time unit by
    calling erlang:convert_time_unit(1, second, native). The
    result equals the number of whole native time units per
    second. If the number of native time units per second does
    not add up to a whole number, the result is rounded downwards.

    Note:
      The value of the native time unit gives you more or less
      no information about the quality of time values. It sets a
      limit for the resolution and for the precision of time
      values, but it gives no information about the accuracy
      of time values. The resolution of the native time unit
      and the resolution of time values can differ
      significantly.

  perf_counter:
    Symbolic representation of the performance counter time unit
    used by the Erlang runtime system.

    The perf_counter time unit behaves much in the same way as
    the native time unit. That is, it can differ between runtime
    restarts. To get values of this type, call os:perf_counter/0.

  deprecated_time_unit():
    Deprecated symbolic representations kept for
    backwards-compatibility.

  The time_unit/0 type can be extended. To convert time values
  between time units, use erlang:convert_time_unit/3.
