anchor.diff:                                     foreign-struct-name
                                      get-ptr
                                      slots
  -                                   typed-populate)
  +                                   typed-populate
  +                                   layout)
  +  (declare (ignore layout))
     (let* ((foreign-type-name (hidden-symb name :cffi-ct-type))
            (make-name (hidden-symb name :make))
            (slot-defs (mapcar #'format-slot-for-cstruct slots))
  
positive.code:            (foreign-struct-name (hidden-symb name :foreign))
             (qualified-struct-name `(:struct ,foreign-struct-name))
             (get-ptr-name (hidden-symb name :ptr))
             (typed-populate (symb :populate- name)))
        (when (validate-defstruct-g-form name slots)
          `(progn
             (eval-when (:compile-toplevel :load-toplevel :execute)
               ,(make-varjo-struct-def name slots))
             ,@(make-instance-wrapper-def name foreign-struct-name get-ptr-name
                                          slots typed-populate)
             ,@(when (and readers accesors)
                 (remove nil (mapcar (lambda (_)
                                       (make-slot-getter
  
negative.code:      (reader :initarg :reader :reader s-reader)
       (writer :initarg :writer :reader s-writer)
       (uses-method-p :initarg :uses-method-p :reader s-uses-method-p))))
  
  (defmethod v-type-of ((gss gl-struct-slot))
    (type-spec->type (s-type gss)))
  
  (defmethod s-arrayp ((object gl-struct-slot))
    (eq (s-type object) :array))
  