anchor.diff:  (load "./utils.lisp")
   
   (defstruct bot
  -  irc-name
  -  irc-passwd
  -  irc-channel
  +  (irc-name nil :type string)
  +  (irc-passwd nil :type string)
  +  (irc-channel nil :type string)
     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)
  -
  +  (irc-ping-semaphore (sb-thread:make-semaphore)
  +                      :type sb-thread:semaphore)
  +  (irc-message-pool-head nil :type cons)
  +  (irc-message-pool-tail nil :type cons)
  +  (irc-message-pool-lock
  +   (sb-thread:make-mutex)
  +   :type sb-thread:mutex)
  +  (irc-reconnect-counter 0 :type integer)
  +
  +  (tg-bot-id nil :type integer)
  +  (tg-bot-authstr nil :type string)
  +  (tg-chat-id nil :type integer)
  +
  +  (thread-irc-read-loop nil :type sb-thread:thread)
  +  (thread-irc-watcher nil :type sb-thread:thread)
  +  (thread-tg-loop nil :type sb-thread:thread))
   
   ;; (defparameter *irc-channel* "#MidyMidymc")
   
  
positive.code:     (setf (bot-tg-bot-id bot) (jget :bot-id tg-conf))
      (setf (bot-tg-bot-authstr bot) (jget :bot-token tg-conf))
      (setf (bot-tg-chat-id bot) (jget :chat-id tg-conf))
      t))
  
  (defun bot-start (config)
  
negative.code:   (if callback
        (funcall callback)))
  
  (defun irc-shutdown (bot)
    (part (bot-irc-connection bot)
          (bot-irc-channel bot) "Bot shutdown")
    (quit (bot-irc-connection bot) "leaving"))
  
  (defun irc-check-connection (bot)
    (let ((t1 (get-internal-real-time)))
  