anchor.diff:      (:unsigned-long    :unsigned-long)
       (:float            :float)
       (:double           :double)
  -    (:pointer          :foreign-address)
  +    (:pointer          (ecase context
  +                         (:normal '(* :void))
  +                         (:funcall :foreign-address)))
       (:void             :void)))
   
   (defun %mem-ref (ptr type &optional (offset 0))
  
positive.code:   #+macosx (concatenate 'string "_" name)
    #-macosx name)
  
  ;; FIXME: ff:get-entry-point will also grab functions
  (defun foreign-var-ptr (name)
    "Return a pointer pointing to the foreign variable NAME."
    (nth-value 0 (ff:get-entry-point (convert-external-name name))))
negative.code:    #:%mem-ref
     ;#:make-shareable-byte-vector
     ;#:with-pointer-to-vector-data
     #:foreign-var-ptr
     #:defcfun-helper))
  
  (in-package #:cffi-sys)
  
  ;; Helper package where some foreign functions are kept.
  (defpackage #:cffi-sys-ff)
  
  ;;;# Basic Pointer Operations
  
  (defun pointerp (ptr)
    "Return true if PTR is a foreign pointer."
    (integerp ptr))
  
  (defun null-ptr ()
    "Return a null pointer."
    0)
  
  (defun null-ptr-p (ptr)
    "Return true if PTR is a null pointer."
    (zerop ptr))
  
  (defun inc-ptr (ptr offset)
    "Return a pointer pointing OFFSET bytes past PTR."
    (+ ptr offset))
  
  ;;;# Allocation
  