anchor.diff:      end.
   
   terminate(_Reason, _State) ->
  -    %% TODO send termination msg, close socket
  +    %% TODO send termination msg, close socket ??
       ok.
   
   code_change(_OldVsn, State, _Extra) ->
       {ok, State}.
   
   %% -- internal functions --
  +
  +cast(C, Command) ->
  +    Ref = make_ref(),
  +    gen_server:cast(C, {{self(), Ref}, Command}),
  +    Ref.
   
   start_ssl(S, Flag, Opts, State) ->
       ok = gen_tcp:send(S, <<8:?int32, 80877103:?int32>>),
  
positive.code: start_link() ->
      gen_server:start_link(?MODULE, [], []).
  
  connect(C, From, Ref, Host, Username, Password, Opts) ->
      gen_server:cast(C, {connect, From, Ref, Host, Username, Password, Opts}).
  
  close(C) when is_pid(C) ->
      catch gen_server:cast(C, stop),
  
negative.code: -behavior(gen_server).
  
  -export([start_link/0,
           connect/5,
           close/1,
           get_parameter/2,
           squery/2,
           equery/3,
           parse/4,
           bind/4,
           execute/4,
           describe/3,
           close/3,
           sync/1,
           cancel/1]).
  
  -export([handle_call/3, handle_cast/2, handle_info/2]).
  