anchor.diff:  
   ; end of IRC code
   
  +[text]
  +
  +simple bot code:
  +(load (string (env {HOME}) {/projects/programming/newlisp-projects/irc.lsp}))
  +(context 'BOT)
  +(define bot-name "bot")
  +(define (join-channel data)
  +		(println {in BOT:join-channel with data: } data))
  +(define (process-message data)
  +        ????)
  +(IRC:register-callback "join-channel"    'join-channel) 
  +(IRC:register-callback "channel-message" 'process-message)
  +(IRC:register-callback "idle-event"      'do-idle-event)
  +(IRC:register-callback "send-to-server"  'do-send-event)
  +(IRC:init bot-name)
  +(IRC:connect "irc.freenode.net" 6667)
  +(IRC:join-channel {#newlisp})
  +(IRC:read-irc-loop)
  +[/text]
positive.code: 
  ;; @module IRC
  ;; @description a basic irc library
  ;; @version early alpha! 0.1 2011-10-31 14:21:26
  ;; @author cormullion
  ;; Usage:
  ;; (IRC:init "newlithper") ; a username/nick (not that one obviously :-)
  
negative.code: (define (register-callback callback-name callback-function)
      (println {registering callback for } callback-name { : } (sym (term callback-function) (prefix callback-function)))
      (push (list callback-name (sym (term callback-function) (prefix callback-function))) Icallbacks)) 
  
  (define (deregister-callback callback-name)
      (println {deregistering callback for } callback-name)
      (setf (assoc "idle-event" Icallbacks) nil)
      (println {current callbacks: } Icallbacks)) 
  
  (define (do-callback callback-name data)
     (when (set 'func (lookup callback-name Icallbacks)) ; find first callback
  