 
   ## Learn more
 
-  In case you desire to learn more about gen events, Elixir getting started
+  If you wish to find out more about gen events, Elixir getting started
   guides provide a tutorial-like introduction. The documentation and links
   in Erlang can also provide extra insight.
 

  @doc """
  Starts an event manager process without links (outside of a supervision tree).

  See `spawn_link/1` for more information.
  """
  @spec start(options) :: on_start
  def start(options \\ []) when is_list(options) do


    It must return:

    *  `{:ok, state}`
    *  `{:ok, state, :hibernate}`
    *  `{:error, reason}`

  * `handle_event(msg, state)` - invoked whenever an event is sent via
    `notify/2` or `sync_notify/2`.

    It must return:

    *  `{:ok, new_state}`
    *  `{:ok, new_state, :hibernate}`
    *  `{:swap_handler, args1, new_state, handler2, args2}`
    *  `:remove_handler`

  * `handle_call(msg, state)` - invoked when a `call/3` is done to a specific handler.

    It must return:

    *  `{:ok, reply, new_state}`
    *  `{:ok, reply, new_state, :hibernate}`
    *  `{:swap_handler, reply, args1, new_state, handler2, args2}`
    *  `{:remove_handler, reply}`

  * `handle_info(msg, state)` - invoked to handle all other messages which
    are received by the process. Must return the same values as `handle_event/2`;

    It must return:

    *  `{:noreply, state}`
    *  `{:noreply, state, timeout}`
    *  `{:stop, reason, state}`

  * `terminate(reason, state)` - called when the event handler is removed or the
    event manager is terminating. It can return any term.

  * `code_change(old_vsn, state, extra)` - called when the application
    code is being upgraded live (hot code swapping).

    It must return:

    *  `{:ok, new_state}`

  ## Name registration

  A GenEvent is bound to the same name registration rules as a `GenServer`.
  Read more about it in the `GenServer` docs.

  ## Streaming

  `GenEvent`s can be streamed from and streamed with the help of `stream/2`.
  Here are some examples:

      stream = GenEvent.stream(pid)
