anchor.diff:  ;;;; $Id: lzw.lisp,v 1.11 2007/01/03 22:01:10 xach Exp $
   
   (in-package #:skippy)
  +
  +(defconstant +maximum-code-bits+ 12
  +  "The maximum bits per code, as defined by the specification.")
   
   (defclass compression-context ()
     ((table
  
positive.code:                    compression-size compression-threshold
                     last-code pos)
               (type bitstream bitstream))
      (fill entries -1)
      (fill preds -1)
      (dotimes (i clear-code)
        (setf (aref entries i) i))
      (labels ((reset-table ()
                 (fill preds -1)
                 (fill entries -1 :start clear-code)
                 (setf last-code -1
                       next-entry-index (+ clear-code 2)
                       compression-size (1+ code-size)
                       compression-threshold (* clear-code 2)))
               (root-value (code)
                 (loop
                  (let ((pred (aref preds code)))
  
negative.code: 
  (defclass decompression-context ()
    ((entries
      :initform (make-array (expt 2 +maximum-code-bits+)
                            :element-type 'string-table-entry
                            :initial-element -1)
      :reader entries)
     (preds
      :initform (make-array (expt 2 +maximum-code-bits+)
                            :element-type 'string-table-entry
                            :initial-element -1)
      :reader preds))
  