   `old_vsn` is the previous version of the module (defined by the `@vsn`
   attribute) when upgrading. When downgrading the previous version is wrapped in
   a 2-tuple with first element `:down`. `state` is the current state of the
-  handker and `extra` is any extra data required to change the state.
+  handler and `extra` is any extra data required to change the state.
 
   Returning `{:ok, new_state}` changes the state to `new_state` and the code
   change is successful.


  ## Learn more and compatibility

  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.

    * [Introduction to Mix – Elixir's Getting Started Guide](http://elixir-lang.org/getting-started/mix-otp/introduction-to-mix.html)
    * [`:gen_event` module documentation](http://www.erlang.org/doc/man/gen_event.html)
    * [Event Handlers – Learn You Some Erlang for Great Good!](http://learnyousomeerlang.com/event-handlers)



  ## Modes

  GenEvent supports three different notifications.

  On `GenEvent.ack_notify/2`, the manager acknowledges each event,
  providing backpressure, but processing of the message happens
