
  -spec erlang:system_monitor(Arg) -> MonSettings
                                 when
                                     Arg ::
                                         undefined | {MonitorPid, Options},
                                     MonSettings ::
                                         undefined | {MonitorPid, Options},
                                     MonitorPid :: pid(),
                                     Options :: [system_monitor_option()].

  Types:
    -type system_monitor_option() ::
          busy_port | busy_dist_port |
          {long_gc, non_neg_integer()} |
          {long_schedule, non_neg_integer()} |
          {large_heap, non_neg_integer()}.

  When called with argument undefined, all system performance
  monitoring settings are cleared.

  Calling the function with {MonitorPid, Options} as argument is
  the same as calling erlang:system_monitor(MonitorPid, Options).

  Returns the previous system monitor settings just like 
  erlang:system_monitor/0.
