anchor.diff:  %% in-process API
   -export([new/1, new/0]).
   -export([lookup/2]).
  +
   
   %% useful utility functions
   -export([ip2long/1]).
  
positive.code: 
  %% record access API
  -export([get/2]).
  
  %% gen_server based API
  -export([start/0, start/1, stop/0, lookup/1, reload/0, reload/1, filename/0]).
  
  %% gen_server callbacks
  -export([init/1, handle_call/3, handle_cast/2, terminate/2, code_change/3,
  
negative.code: lookup(Address) ->
      gen_server:call(?MODULE, {lookup, Address}).
  
  %% @spec lookup_pl(Address) -> geoip()
  %% @doc Get a proplist version of a geoip() record for the given address.
  lookup_pl(Address) ->
      case lookup(Address) of
          {ok, #geoip{} = R} ->
              E = record_info(fields, geoip),
              lists:zip(E, lists:map(fun ensure_binary_list/1,
                                     tl(tuple_to_list(R))));
          Other ->
              Other
      end.
  
  %% @spec record_fields() -> Fields::list()
  %% @doc Get an ordered list of the geoip record fields
  record_fields() ->
      record_info(fields, geoip).
  
  %% @spec filename() -> string()
  %% @doc Get the database filename currently being used by the server.
  filename() ->
  