anchor.diff:  
   (defun foreign-alloc (size)
     "Allocate SIZE bytes of foreign-addressable memory."
  -  (si:allocate-foreign-data :unsigned-byte size))
  +  (si:allocate-foreign-data :void size))
   
   (defun foreign-free (ptr)
     "Free a pointer PTR allocated by FOREIGN-ALLOC."
  
positive.code: 
  (defun inc-ptr (ptr offset)
    "Return a pointer OFFSET bytes past PTR."
    (ffi:make-pointer
     (+ offset (ffi:pointer-address ptr)) :unsigned-byte))
  
  ;;;# Dereferencing
  
  (defun %mem-ref (ptr type &optional (offset 0))
    "Dereference an object of TYPE at OFFSET bytes from PTR."
    (ffi:deref-array
     (inc-ptr ptr offset)
     `(:array ,(convert-foreign-type type))
     0))
  
  (defun (setf %mem-ref) (value ptr type &optional (offset 0))
    "Set an object of TYPE at OFFSET bytes from PTR."
    (setf (ffi:deref-array
           (inc-ptr ptr offset)
           `(:array ,(convert-foreign-type type))
           0) value))
  
  ;;;# Type Operations
  
  
negative.code: 
  (defun null-ptr ()
    "Construct and return a null pointer."
    (si:allocate-foreign-data :void 0))
  
  (defun null-ptr-p (ptr)
    "Return true if PTR is a null pointer."
  