
  [;1m-type time_unit() ::[0m
  [;1m          pos_integer() |[0m
  [;1m          second | millisecond | microsecond | nanosecond | native |[0m
  [;1m          perf_counter |[0m
  [;1m          deprecated_time_unit().[0m

  The time unit used by erlang time APIs.

  Supported time unit representations:

   • [;;4mPartsPerSecond :: integer() >= 1[0m - Time unit expressed in
     parts per second. That is, the time unit equals [;;4m[0m
     [;;4m1/PartsPerSecond[0m second.

   • [;;4msecond[0m - Symbolic representation of the time unit
     represented by the integer [;;4m1[0m.

   • [;;4mmillisecond[0m - Symbolic representation of the time unit
     represented by the integer [;;4m1000[0m.

   • [;;4mmicrosecond[0m - Symbolic representation of the time unit
     represented by the integer [;;4m1000_000[0m.

   • [;;4mnanosecond[0m - Symbolic representation of the time unit
     represented by the integer [;;4m1000_000_000[0m.

   • [;;4mnative[0m - Symbolic representation of the native time unit
     used by the Erlang runtime system.

     The [;;4mnative[0m 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 [;;4mnative[0m time unit of
     the new runtime system instance can differ from the [;;4mnative[0m
     time unit of the old runtime system instance.

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

  [;;4mNote[0m

       The value of the [;;4mnative[0m 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 [;;4mnative[0m
       time unit and the resolution of time values can differ
       significantly.

   • [;;4mperf_counter[0m - Symbolic representation of the performance
     counter time unit used by the Erlang runtime system.

     The [;;4mperf_counter[0m time unit behaves much in the same way as
     the [;;4mnative[0m time unit. That is, it can differ between
     runtime restarts. To get values of this type, call [;;4m[0m
     [;;4mos:perf_counter/0[0m.

   • [;;4mdeprecated_time_unit/0[0m - Deprecated symbolic
     representations kept for backwards-compatibility.

  The [;;4mtime_unit/0[0m type can be extended. To convert time values
  between time units, use [;;4merlang:convert_time_unit/3[0m.
