anchor.diff:  ;;       (stream (cdr stream))
   ;;       (OS (car stream))
   ;;       (stream (cdr stream)))
  -;;       ;(stream (drop stream 8)))
  -;;    (print "ID1: " ID1)
  -;;    (print "ID2: " ID2)
  -;;    (print "CM: " CM)
  -;;    (print "FLG: " FLG)
  -;;    (print "XFL: " XFL)
  -;;    (print "OS: " OS)
  +;;    ;; (print "ID1: " ID1)
  +;;    ;; (print "ID2: " ID2)
  +;;    ;; (print "CM: " CM)
  +;;    ;; (print "FLG: " FLG)
  +;;    ;; (print "XFL: " XFL)
  +;;    ;; (print "OS: " OS)
   
   ;;    (print (list->string (inflate stream))))
   
  
positive.code: (define (bits n hold)
     (let loop ((hold hold))
        (tuple-apply hold (lambda (v i l)
           (unless (less? i n)
              (values (band v (- (<< 1 n) 1)) (tuple (>> v n) (- i n) l))
              ; если же не хватает бит, втянем из потока
              (loop (tuple
                 (bor v (<< (car l) i))
                 (+ i 8)
                 (cdr l))))))))
  
  ; code - huffman table (from make-huffman-table), hold - binary stream
  (define (huffman codes hold)
     (let loop ((code 1) (hold hold))
        (let*((bit hold (bits 1 hold))
  
negative.code:             (values value hold)
              (loop code hold)))))
  
  ; конвертируем массив длин в таблицу хафмана
  (define (make-huffman-table lengths)
     (let loop  ((codes #empty)
                 (pairs (sort (lambda (a b) (< (car a) (car b))) ; отсортированный и
  