anchor.diff:  ;;;; Conversion functions
   
   (defun integer-to-dotted (integer)
  -  "Convert a 32-bit unsigned integer to a dotted string."
  +  "Convert an (UNSIGNED-BYTE 32) IPv4 address to a dotted string."
     (check-type integer ub32 "an '(unsigned-byte 32)")
     (let ((*print-pretty* nil) (*print-base* 10))
       (format nil "~A.~A.~A.~A"
  
positive.code:             (ldb (byte 8 0) integer))))
  
  (defun dotted-to-vector (address)
    "Convert a dotted IPv4 address to a (simple-array (unsigned-byte 8) 4)."
    (check-type address string "a string")
    (let ((addr (make-array 4 :element-type 'ub8 :initial-element 0))
          (split (split-sequence #\. address :count 5)))
  
negative.code: ;;; TODO: add tests against inet_pton().  Optimize if necessary.
  ;;; <http://java.sun.com/javase/6/docs/api/java/net/Inet6Address.html#format>
  (defun colon-separated-to-vector (string)
    "Convert a colon-separated IPv6 address to a (SIMPLE-ARRAY (UNSIGNED-BYTE 16) 8)."
    (check-type string string "a string")
    (when (< (length string) 2)
      (error 'parse-error))
  