anchor.diff:        {next_state, StateName, NewState};
       Error ->
         lager:log(error, self(), "Connection error ~p", [Error]),
  -      {stop, normal, State}
  +      {stop, Error, State}
     end;
   
   handle_info({heartbeat_timeout, _}, awaiting_session = StateName, State) ->
  
positive.code:       lager:error("callback not defined"),
        {stop, normal};
      Callback ->
        Backoff = backoff(T),
        lager:info("connection backoff ~p, cache ~p", [Backoff, Cache]),
        timer:send_after(Backoff, {connect, Opts}),
        {ok, awaiting_session, #s{
              session=Session,
  
negative.code: -type opt() ::
      {username, binary()}
    | {password, binary()}
    | {cookie, binary()}
    | {callback, fun()}.
  -type opts() :: list(opt()).
  -type send_response() ::
  