anchor.diff:                            :short g
                             :short b
                             :int))
  -  (push (make-color :number number
  -                    :name name
  -                    :r r
  -                    :g g
  -                    :b b)
  +  (push (make-color :number number :name name :r r :g g :b b)
           *colors*))
  +
  +(defun init-pair (fg-color bg-color)
  +  (incf *pair-counter*)
  +  (charms/ll:init-pair *pair-counter* fg-color bg-color)
  +  (setf (gethash (cons fg-color bg-color) *color-pair-table*)
  +        (charms/ll:color-pair *pair-counter*)))
   
   (defun init-colors ()
     (when (/= 0 (charms/ll:has-colors))
       (charms/ll:start-color)
       (charms/ll:use-default-colors)
  -
  +    (clrhash *color-pair-table*)
       (setf *colors* nil)
  -
       (add-color charms/ll:color_black "black" #x00 #x00 #x00 t)
       (add-color charms/ll:color_red "red" #xcd #x00 #x00 t)
       (add-color charms/ll:color_green "green" #x00 #xcd #x00 t)
  
positive.code:     (add-color charms/ll:color_magenta "magenta" #xcd #x00 #xcd t)
      (add-color charms/ll:color_cyan "cyan" #x00 #xcd #xcd t)
      (add-color charms/ll:color_white "white" #xe5 #xe5 #xe5 t)
  
      (when (<= 256 charms/ll:*colors*)
        (add-color 8 "brightred" #xff #x00 #x00)
        (add-color 9 "brightgreen" #x00 #xff #x00)
        (add-color 10 "brightyellow" #xff #xff #x00)
        (add-color 11 "brightblue" #x5c #x5c #xff)
        (add-color 12 "brightmagenta" #xff #x00 #xff)
        (add-color 13 "brightcyan" #x00 #xff #xff)
        (add-color 14 "brightwhite" #xff #xff #xff)
        (add-color 15 "color-16" #x00 #x00 #x00)
        (add-color 16 "color-17" #x00 #x00 #x5f)
        (add-color 17 "color-18" #x00 #x00 #x87)
  
negative.code: 
  (cffi:defcvar ("COLOR_PAIRS" *COLOR-PAIRS* :library charms/ll::libcurses) :int)
  
  (defvar *colors* '())
  (defvar *color-pair-table* (make-hash-table :test 'equal))
  (defvar *pair-counter* 0)
  
  (defstruct color
    number
  