anchor.diff:  (defmethod translate-from-foreign (pointer (type carray))
     (if (capacity type)
         (loop for i from 0 below (capacity type)
  -         for value = (mem-aref pointer (value-type type) i)
  -         collect value)
  +            for value = (mem-aref pointer (value-type type) i)
  +            collect value)
         (loop for i from 0
  -         for value = (mem-aref pointer (value-type type) i)
  -         while (not (null-pointer-p value))
  -         collect value)))
  +            for value = (mem-aref pointer (value-type type) i)
  +            while (not (null-pointer-p value))
  +            collect value)))
   
   (defmethod free-translated-object (value (type carray) param)
     (declare (ignore param))
  
positive.code:             (execution-engine make-execution-engine dispose-execution-engine)
              (interpreter make-interpreter dispose-execution-engine)
              (jit-compiler make-jit-compiler dispose-execution-engine))))
      `(let ((,var (,(second (assoc type managers :test 'string-equal)) ,@args)))
         (unwind-protect (progn ,@body)
           (,(third (assoc type managers :test 'string-equal)) ,var)))))
  
  (defmacro with-objects ((&rest bindings) &body body)
    (if (endp bindings)
      `(progn ,@body)
      `(with-object ,(car bindings)
         (with-objects ,(cdr bindings)
           ,@body))))
  
  (defcfun* "LLVMDisposeMessage" :void (message (:pointer :char)))
  
  
negative.code: (in-package :llvm)
  
  (defparameter *should-dispose-modules* nil)
  
  (defmacro with-object ((var type &rest args) &body body)
    (let ((managers
  