anchor.diff:           (diff_func :pointer))
   
   (defcfun "print_vector" :void (dim :uint64) (x (:pointer :double)))
  +(defcfun "print_vector_i" :void (dim :uint64) (x (:pointer :int)))
  +(defcfun "print_vector_u" :void (dim :uint64) (x (:pointer :uint64)))
   (defcfun "print_matrix" :void
            (rows :uint64)
            (cols :uint64)
  
positive.code:               (,g-rows ,rowform)
                (,g-cols ,colform))
           ,full-body))))
  
negative.code:                     (length (first list)))
                :initial-contents list))
  
  
  (defmacro with-matrix ((name &key (type :double) initial-contents (dims '(0 0) have-dims)) &body body)
    (let* ((g-rows (if have-dims (first dims) (gensym)))
  