anchor.diff:       todo)
       ;; 10. If the member is an array of S structures, the S elements of
       ;; the array are laid out in order, according to rule (9).
  -    todo))
  +    ((and (array-type-p type)
  +          (struct-type-p (element-type type)))
  +     todo)
  +    ;;
  +    (t (error "shiit"))))
   
  -(defun array-stride (type)
  +;;
  +;; Array Stride
  +
  +(defun array-stride (parent previous-sibling self)
     (assert (array-type-p type))
  +  (if (slot-boundp self 'array-stride)
  +      (slot-value self 'array-stride)
  +      (setf (slot-value self 'array-stride)
  +            (calc-array-stride parent previous-sibling self))))
  +
  +(defun calc-array-stride (parent previous-sibling self)
     (if (or (scalar-type-p (element-type type))
             (vector-type-p (element-type type)))
         ;; 4. If the member is an array of scalars or vectors, the base
  
positive.code:     ;;    The array may have padding at the end; the base offset of the member
      ;;    following the array is rounded up to the next multiple of the base
      ;;    alignment.
      ((and (array-type-p type)
            (or (scalar-type-p (element-type type))
                (vector-type-p (element-type type))))
       (round-to-next-multiple (base-alignment (element-type type))
                               (base-alignment :vec4)))
      ;; 6. If the member is an array of S column-major matrices with C
      ;; columns and R rows, the matrix is stored identically to a row of
      ;; S × C column vectors with R components each, according to rule (4).
  
negative.code: 
  (defun round-to-next-multiple (val multiple)
    (* (ceiling val multiple) multiple))
  
  ;;----------------------------------------------------------------------
  
  (defclass layout-node ()
    ((type :initarg :type)
     (base-offset :initarg :base-offset)
     (aligned-offset :initarg :aligned-offset)
     (stride :initarg :stride)
     (children :initarg :children)))
  
  ;;----------------------------------------------------------------------
  