anchor.diff:                                      d
                                       (+ t 1))
                                 (values a b c d e))))
  -                     (_ (print "round 3:"))
  -                     (a b c d e
  +                     (a b c d e ; round 4
                           (let loop ((a a) (b b) (c c) (d d) (e e) (t 60))
  -                           (print "abcde " a " " b " " c " " d " " e)
                              (if (< t 80)
  -                              (loop (band #xFFFFFFFF
  +                              (loop (->32
                                             (+ (rol 5 a)
                                                (XOR b c d)
                                                e
  
positive.code: #!/bin/ol
  ;(define *debug* #t)
  
  ; https://www.packetizer.com/security/sha1/
  
  (define (to-32bit-word i)
     (band i #xFFFFFFFF))
  
  (define (ash n shift)
     (if (< shift 0)
        (let* ((x _ (fx:>> n (- shift))))
           x)
        (let* ((_ x (fx:<< n shift)))
           x)))
           
  (define XOR (lambda args (fold bxor 0 args)))
  
  (define OR (lambda args (fold bor 0 args)))
           
  ;(define (sha1-rotl n shift)
  ;   (bor
  ;      (to-32bit-word (ash n shift))
  ;      (ash n (- shift 32))))
  
  (define (sha1-padding-size n)
     (let ((x (mod (- 56 (rem n 64)) 64)))
  
negative.code:                                     d
                                      (+ t 1))
                                (values a b c d e))))
                       (a b c d e ; round 2
                          (let loop ((a a) (b b) (c c) (d d) (e e) (t 20))
                             (if (< t 40)
                                (loop (->32
                                            (+ (rol 5 a)
                                               (XOR b c d)
                                               e
  