
  -spec erlang:start_timer(Time, Dest, Msg, Options) -> TimerRef
                              when
                                  Time :: integer(),
                                  Dest :: pid() | atom(),
                                  Msg :: term(),
                                  Options :: [Option],
                                  Abs :: boolean(),
                                  Option :: {abs, Abs},
                                  TimerRef :: reference().

Since:
  OTP 18.0

  Starts a timer. When the timer expires, the message {timeout,
  TimerRef, Msg} is sent to the process identified by Dest.

  Options:

  {abs, false}:
    This is the default. It means the Time value is interpreted
    as a time in milliseconds relative current Erlang monotonic
    time.

  {abs, true}:
    Absolute Time value. The Time value is interpreted as an
    absolute Erlang monotonic time in milliseconds.

  More Options can be added in the future.

  The absolute point in time, the timer is set to expire on, must be
  in the interval [ erlang:convert_time_unit(erlang:system_info
  (start_time), native, millisecond), erlang:convert_time_unit(
  erlang:system_info(end_time), native, millisecond) ]. If a
  relative time is specified, the Time value is not allowed to be
  negative.

  If Dest is a pid(), it must be a pid() of a process created
  on the current runtime system instance. This process has either
  terminated or not. If Dest is an atom(), it is interpreted as
  the name of a locally registered process. The process referred to
  by the name is looked up at the time of timer expiration. No error
  is returned if the name does not refer to a process.

  If Dest is a pid(), the timer is automatically canceled if the
  process referred to by the pid() is not alive, or if the process
  exits. This feature was introduced in ERTS 5.4.11. Notice that
  timers are not automatically canceled when Dest is an atom().

  See also erlang:send_after/4, erlang:cancel_timer/2, and 
  erlang:read_timer/2.

  Failure: badarg if the arguments do not satisfy the requirements
  specified here.
