anchor.diff:  %%%===================================================================
   %%% Behaviour callback
   %%%===================================================================
  +
  +%% When callback modules are referred to in specs,
  +%% they're escalus_connection:t().
  +%% This is purely informal, for Dialyzer it's just a module().
  +-type t() :: module().
  +
   -callback connect([proplists:property()]) -> {ok, client()}.
   -callback send(client(), #xmlel{}) -> no_return().
   -callback stop(client()) -> ok | already_stopped.
  
positive.code:     Fun.
  
  connect(Props) ->
      Transport = proplists:get_value(transport, Props, tcp),
      Server = proplists:get_value(server, Props, <<"localhost">>),
      Host = proplists:get_value(host, Props, Server),
      NewProps = lists:keystore(host, 1, Props, {host, Host}),
  
negative.code: -type filter_pred() :: fun((#xmlel{}) -> boolean()) | none.
  -export_type([filter_pred/0]).
  
  -export_type([t/0]).
  
  %% Private
  -export([connection_step/2]).
  
  