anchor.diff:  
   new() ->
       new("localhost", 9090).
  -    
  +
   %%%
   %%% instance methods
   %%%
  
positive.code:     %% error_logger:info_msg("tSocket: wrote ~p~n", [Str]),
  
      %% error_logger:info_msg("WRITE |~p| (~p)", [Str,Val]),
      
      case Val of
  	{error, _} ->
  	    throw(tTransportException:new(?tTransportException_NOT_OPEN, "in write"));
  	ok ->
  	    {ok, This}
      end.
  
  read(This, Sz) ->
      Handle = oop:get(This, handle),
      case gen_tcp:recv(Handle, Sz) of
  	{ok, []} ->
  	    Host = oop:get(This, host),
  	    Port = oop:get(This, port),
  	    throw(tTransportException:new(?tTransportException_UNKNOWN, "TSocket: Could not read " ++ Sz ++ "bytes from " ++ Host ++ ":" ++ Port));
  	{ok, Data} ->
  	    %% DEBUG
  	    %% io:format("tSocket: read ~p~n", [Data]),
  	    Data;
  	{error, Error} ->
  	    exit(tTransportException:new(?tTransportException_NOT_OPEN, "in tSocket:read/2: gen_tcp:recv"))
  	end.
  	    
  effectful_close(This) ->
      case oop:get(This, handle) of
  	nil ->
  	    {ok, This};
  	Handle -> 
  	    gen_tcp:close(Handle),
  	    {ok, oop:set(This, handle, nil)}
      end.
  
negative.code: effectful_setHandle(This, Handle) ->
      {ok, oop:set(This, handle, Handle)}.
  
  effectful_open(This) ->
      Host = oop:get(This, host),
      Port = oop:get(This, port),
      Options = [binary, {packet, 0}, {active, false}],
  
      case gen_tcp:connect(Host, Port, Options) of
          {error, _} ->
              exit(tTransportException:new(
                     ?tTransportException_NOT_OPEN,
                     "Could not connect to " ++ Host ++ ":" ++ Port)
                  );
          {ok, Socket} ->
              effectful_setHandle(This, Socket)
      end.
  
  isOpen(This) ->
  