
  -spec erlang:send(Dest, Msg) -> Msg when Dest :: dst(), Msg :: term().

  Types:
    -type dst() ::
          pid() |
          reference() |
          port() |
          (RegName :: atom()) |
          {RegName :: atom(), Node :: node()}.

  Sends a message and returns Msg. This is the same as using the 
  send operator: Dest ! Msg.

  Dest can be a remote or local process identifier, an alias, a
  (local) port, a locally registered name, or a tuple {RegName,
  Node} for a registered name at another node.

  The function fails with a badarg run-time error if Dest is an
  atom name, but this name is not registered. This is the only case
  when send fails for an unreachable destination Dest (of
  correct type).
