
  -spec halt(Status, Options) -> no_return()
                when
                    Status :: non_neg_integer() | abort | string(),
                    Options :: [Option],
                    Option :: {flush, boolean()}.

Since:
  OTP R15B01

  Status must be a non-negative integer, a string, or the atom 
  abort. Halts the Erlang runtime system. Has no return value.
  Depending on Status, the following occurs:

  integer():
    The runtime system exits with integer value Status as status
    code to the calling environment (OS).
    Note:
      On many platforms, the OS supports only status codes
      0-255. A too large status code is truncated by clearing
      the high bits.

  string():
    An Erlang crash dump is produced with Status as slogan. Then
    the runtime system exits with status code 1. The string will
    be truncated if longer than 200 characters.
    Note:
      Before ERTS 9.1 (OTP-20.1) only code points in the range
      0-255 was accepted in the string. Now any unicode string
      is valid.

  abort:
    The runtime system aborts producing a core dump, if that is
    enabled in the OS.

  For integer Status, the Erlang runtime system closes all ports
  and allows async threads to finish their operations before
  exiting. To exit without such flushing, use Option as 
  {flush,false}.

  For statuses string() and abort, option flush is ignored and
  flushing is not done.
