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