anchor.diff:  
   -export([start/5, start_link/5, stop/1]).
   -export([login/4, submit_sm/5]).          %% Client
  +-export([reply_result/2]).
   -export([delivery_sm/5, notify_sm/4]).    %% Server
   
   %%% THIS BEHAVIOUR EXPORTS
  
positive.code:                     Message = MakeFun(Trn),
                      NewState = send_message(Message, State),
                      NewState
                  catch C:E ->
                      io:format("~n~n ERROR: ~p", [erlang:get_stacktrace()])
                  end
              end
  
negative.code: notify_sm(Ref, Addr, OrigAddr, Opt) ->
      gen_server:call(ref_to_pid(Ref),
                      {notify_sm, Addr, OrigAddr, Opt}, ?CALL_TIMEOUT).
  
  
  %%% @doc Send a result message via the session.
  %%% @spec reply_result(Ref, Message) -> ok
  %%%  Ref = atom() | pid()
  %%%  Message = string()
  %%% @end
  reply_result(Ref, Message) ->
      gen_server:call(ref_to_pid(Ref),
                      {reply, Message}, ?CALL_TIMEOUT).
  
  %%% THIS BEHAVIOUR DEFINITION FUNCTION
  
  