anchor.diff:  (defun convert-foreign-type (cffi-type)
     "Convert a CFFI type keyword to an FLI type."
     (ecase cffi-type
  -    (:char            :byte)
  -    (:unsigned-char   '(:unsigned :byte))
  -    (:short           :short)
  -    (:unsigned-short  '(:unsigned :short))
  -    (:int             :int)
  -    (:unsigned-int    '(:unsigned :int))
  -    (:long            :long)
  -    (:unsigned-long   '(:unsigned :long))
  -    (:float           :float)
  -    (:double          :double)
  -    (:pointer         :pointer)
  -    (:void            :void)))
  +    (:char               :byte)
  +    (:unsigned-char      '(:unsigned :byte))
  +    (:short              :short)
  +    (:unsigned-short     '(:unsigned :short))
  +    (:int                :int)
  +    (:unsigned-int       '(:unsigned :int))
  +    (:long               :long)
  +    (:unsigned-long      '(:unsigned :long))
  +    #+lispworks-64bit
  +    (:long-long          '(:long :long))
  +    #+lispworks-64bit
  +    (:unsigned-long-long '(:unsigned :long :long))
  +    (:float              :float)
  +    (:double             :double)
  +    (:pointer            :pointer)
  +    (:void               :void)))
   
   ;;; Convert a CFFI type keyword to a symbol suitable for passing to
   ;;; FLI:FOREIGN-TYPED-AREF.
   #+#.(cl:if (cl:find-symbol "FOREIGN-TYPED-AREF" "FLI") '(and) '(or))
   (defun convert-foreign-typed-aref-type (cffi-type)
     (ecase cffi-type
  -    ((:char :short :int :long)
  +    ((:char :short :int :long #+lispworks-64bit :long-long)
        `(signed-byte ,(* 8 (%foreign-type-size cffi-type))))
  -    ((:unsigned-char :unsigned-short :unsigned-int :unsigned-long)
  +    ((:unsigned-char :unsigned-short :unsigned-int :unsigned-long
  +      #+lispworks-64bit :unsigned-long-long)
        `(unsigned-byte ,(* 8 (%foreign-type-size cffi-type))))
       (:float 'single-float)
       (:double 'double-float)))
  
positive.code:   (if (constantp type)
        (once-only (val)
          (let ((type (eval type)))
            (if (eql type :pointer)
                (let ((fli-type (convert-foreign-type type))
                      (ptr-form (if (eql off 0) ptr `(inc-pointer ,ptr ,off))))
                  `(setf (fli:dereference ,ptr-form :type ',fli-type) ,val))
  
negative.code: (define-compiler-macro %mem-ref (&whole form ptr type &optional (off 0))
    (if (constantp type)
        (let ((type (eval type)))
          (if (or #+(and lispworks-64bit lispworks5.0) (64-bit-type-p type)
                  (eql type :pointer))
              (let ((fli-type (convert-foreign-type type))
                    (ptr-form (if (eql off 0) ptr `(inc-pointer ,ptr ,off))))
                `(fli:dereference ,ptr-form :type ',fli-type))
  