anchor.diff:             (:simple-parser ,name))
            (defclass ,value-name (c-value) ())
            ,@(when accessors (make-getters-and-setters name value-name struct-name slots))
  -         ,@(make-translators name type-name value-name slots struct-name)
  +         ,@(unless e-typep (make-translators name type-name value-name slots struct-name))
            ,(when accessors (make-puller name value-name slots))
            ,(when vertex (make-gl-struct-attrib-assigner name slots))
            ,(when pixel (make-struct-pixel-format name slot-descriptions))
  
positive.code:                                         ',slot-name)))
                          (loop for datum in ,slot-name for i from 0 do
                               (setf (mem-aref array-ptr 
                                              ',(varjo:type-principle vslot-type)
                                              i)
                                     datum)))
                       ;;if value
                       `(setf (mem-ref (foreign-slot-pointer
  
negative.code:                                (varjo:type-array-length (slot-type slot))
                                 1))))))
  
  ;; [TODO] is this fucked now?
  (defun make-translators (name type-name value-name slots struct-name)
    (let ((slot-names (mapcar #'first slots)))
      `((defmethod translate-from-foreign (ptr (type ,type-name))
  