
  -spec erlang:memory(Type :: memory_type()) -> non_neg_integer();
                     (TypeList :: [memory_type()]) ->
                         [{memory_type(), non_neg_integer()}].

  Types:
    -type memory_type() ::
          total | processes | processes_used | system | atom |
          atom_used | binary | code | ets.

  Returns the memory size in bytes allocated for memory of type 
  Type. The argument can also be specified as a list of 
  memory_type() atoms, in which case a corresponding list of 
  {memory_type(), Size :: integer >= 0} tuples is returned.

  Note:
    As from ERTS 5.6.4, erlang:memory/1 requires that all 
    erts_alloc(3) allocators are enabled (default behavior).

  Failures:

  badarg:
    If Type is not one of the memory types listed in the
    description of erlang:memory/0.

  badarg:
    If maximum is passed as Type and the emulator is not run
    in instrumented mode.

  notsup:
    If an erts_alloc(3) allocator has been disabled.

  See also erlang:memory/0.
