anchor.diff:  -record(state, {con,
                   user = #user{},
                   irc_server = #irc_server{},
  -                pass}).
  +                pass,
  +                chans=[],
  +                nicks=[]}).
   
   %%====================================================================
   %% API
  
positive.code: 
  serverpid(S = #state{}) -> serverpid(server(S));
  serverpid(#irc_server{pid=P}) -> P.
  
negative.code:     serversend(State, #irc_cmd{name=nomotd}), % XXX probably need to ask parent server for a MOTD
      {next_state, connected, State}.
  
  connected({irc, _, #irc_cmd{name=quit}}, State) ->
      {stop, normal, State};
  connected({irc, _, #irc_cmd{name=ping}}, State = #state{irc_server=S}) ->
      serversend(State, #irc_cmd{name=pong, args=[{servers, {S#irc_server.host, S#irc_server.net}}]}),
      {next_state, connected, State};
  connected({irc, _, #irc_cmd{name=join,args=[{channels, Chans}]}}, State) ->
      join(Chans, State);
  connected({irc, _, #irc_cmd{name=invalid_cmd}}, State) ->
      serversend(State, #irc_cmd{name=error, args=[{message, "Invalid command"}]}),
      {next_state, connected, State};
  connected({irc, _, #irc_cmd{name=Cmd}} = Event, State) ->
      ?INFO("Got ~p in state connected.", [Event]),
  