anchor.diff:      (creat-watcher-f bot)))
   
   (defun bot-halt (bot)
  -  (tryto (sb-thread:terminate-thread (bot-thread-tg-loop bot)))
  +  (tryto (irc-shutdown bot))
     (tryto (sb-thread:terminate-thread (bot-thread-irc-watcher bot)))
  -  (tryto (irc-shutdown bot)))
  -
  +  (tryto (sb-thread:terminate-thread (bot-thread-irc-read-loop)))
  +  (tryto (sb-thread:terminate-thread (bot-thread-tg-loop bot))))
  
positive.code: (load "./utils.lisp")
  
  (defstruct bot
    irc-name
    irc-passwd
    irc-channel
    irc-connection
    irc-ping-semaphore
    irc-message-pool-head
    irc-message-pool-tail
    irc-message-pool-lock
    irc-reconnect-counter
  
    tg-bot-id
    tg-bot-authstr
    tg-chat-id
  
    thread-irc-read-loop
    thread-irc-watcher
    thread-tg-loop)
  
  
  ;; (defparameter *irc-channel* "#MidyMidymc")
  
  
negative.code:       (setf (cdr (bot-irc-message-pool-tail bot)) new)
        (setf (bot-irc-message-pool-tail bot) new))))
  
  (defun clear-msg-pool-f (bot)
    (sb-thread:with-mutex ((bot-irc-message-pool-lock bot))
      (if (cdr (bot-irc-message-pool-head bot))
          (handler-case
              (progn
                (send-irc-message
                 bot
                 (cadr (bot-irc-message-pool-head bot)))
                (setf (cdr (bot-irc-message-pool-head bot))
                      (cddr (bot-irc-message-pool-head bot)))
                (clear-msg-pool-f bot))
            (condition ()
              (logging "clear-msg-pool-f: Can NOT send irc msg, give up!")))
          ;; finish, reset tail
          (setf (bot-irc-message-pool-tail bot)
                (bot-irc-message-pool-head bot)))))
  
  ;; supress warning
  (defun bot-halt (bot) bot)
  (defun send-tg-message (bot str) bot str)
  (defun irc-check-connection (bot) bot)
  (defun irc-reconnect (bot &optional (callback nil))
  