anchor.diff:    (if (== x 0)
      ;; Trivial case - for 0, just put a 0 and close the buffer
      (block
  -    (set (array buffer 0) (int-to-byte 48))
  -    (set (array buffer 1) (int-to-byte 0)))
  +    (set (array buffer 0) 48)
  +    (set (array buffer 1) 0))
      
      (block
       (set index 0)
       (while (> x 0)
        (block
  -      (set (array buffer index) (int-to-byte (+ (% x 10) 48)))
  +      (set (array buffer index) (+ (% x 10) 48))
         (set index (+ index 1))
         (set x (/ x 10))))
   
  -    (set (array buffer index) (int-to-byte 0))
  +    (set (array buffer index) 0)
       (str.rev buffer)))))
   
   (define str.str->int (buffer)
  
positive.code:    (i integer))
    (block
     (set i 0)
     (while (!= 0 (byte-to-int (array str i)))
      (set i (+ i 1)))
  
     (return i)))
  
negative.code:   (set index buffer)
    (set accum 0)
  
    (while (&& (>= (deref index) 48)
               (<= (deref index) 57))
     (block
      (set accum (* accum 10))
      (set accum 
       (+ accum (- (deref index) 48)))
  
      (set index (+ index 1))))
  
  