anchor.diff:  
   
   initializing(_, State) ->
  -    {infinity, State}.
  +    %% TODO incomplete
  +    {noreply, State#state{on_message = fun on_message/2}}.
   
   on_message({$N, Data}, State) ->
       %% TODO use it
  
positive.code:     OnTimeout(State);
  
  handle_info({_, Sock, Data2}, #state{data = Data, sock = Sock} = State) ->
      on_data({State#state{data = <<Data/binary, Data2/binary>>}, infinity}).
  
  on_data({#state{data = Data, on_message = OnMessage} = State, Timeout}) ->
      case pgsql_wire:decode_message(Data) of
          {Message, Tail} ->
              on_data(OnMessage(Message, State#state{data = Tail}));
          _ ->
              {noreply, State, Timeout}
      end.
  
negative.code:     Digest1 = hex(erlang:md5([Password, Username])),
      Str = ["md5", hex(erlang:md5([Digest1, Salt])), 0],
      send(State, $p, Str),
      {noreply, State, Timeout};
  
  auth(_Username, _Password, {$R, <<M:?int32, _/binary>>}, State) ->
      case M of
  