anchor.diff:            module :: module(),
             state :: any()
           }).
  +-type state() :: #state{}.
   
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %% Behavior definition
  
positive.code: -type lasse_handler_option()  :: {'module', module()} | {'init_args', any()}.
  -type lasse_handler_options() :: [module()] | [lasse_handler_option(), ...].
  
  -spec init(any(), any(), lasse_handler_options()) -> {loop, any(), record(state)}.
  init(_Transport, Req, Opts) ->
      Module = case get_value(module, Opts, Opts) of
                   Name when is_atom(Name) -> Name;
  
negative.code:     InitResult = Module:init(InitArgs, LastEventId, Req),
      handle_init(InitResult, Module).
  
  -spec info(term(), cowboy_req:req(), state()) ->
      {ok|loop, cowboy_req:req(), state()}.
  info({message, Msg}, Req, State) ->
      Module = State#state.module,
      ModuleState = State#state.state,
  