anchor.diff:     (element-type :initform 'v-float)
      (dimensions :initform '(3) :reader v-dimensions)
      (casts-to :initform '(v-dvec3))))
  -(def-v-type-class v-vec4 (v-fvector v-gvec4)
  +(def-v-type-class v-vec4 (v-fvector)
     ((core :initform t :reader core-typep)
      (glsl-string :initform "vec4" :reader v-glsl-string)
      (element-type :initform 'v-float)
      (dimensions :initform '(4) :reader v-dimensions)
      (casts-to :initform '(v-dvec4))))
   
  -(def-v-type-class v-bvector (v-vector v-tb) ())
  +(def-v-type-class v-bvector (v-vector) ())
   (def-v-type-class v-bvec2 (v-bvector)
     ((core :initform t :reader core-typep)
      (glsl-string :initform "bvec2" :reader v-glsl-string)
  
positive.code:   ((core :initform T :reader core-typep)
     (glsl-string :initform "usampler2DMSArray" :reader v-glsl-string)
     (element-type :initform 'V-UVEC4)))
  (def-v-type-class v-usampler-2d-rect (v-sampler v-gsampler-2d-rect)
    ((core :initform T :reader core-typep)
     (glsl-string :initform "usampler2DRect" :reader v-glsl-string)
     (element-type :initform 'V-UVEC4)))
  (def-v-type-class v-usampler-3d (v-sampler v-gsampler-3d)
    ((core :initform T :reader core-typep)
     (glsl-string :initform "usampler3D" :reader v-glsl-string)
     (element-type :initform 'V-UVEC4)))
  (def-v-type-class v-usampler-buffer (v-sampler v-gsampler-buffer)
    ((core :initform T :reader core-typep)
     (glsl-string :initform "usamplerBuffer" :reader v-glsl-string)
     (element-type :initform 'V-UVEC4)))
  (def-v-type-class v-usampler-cube (v-sampler v-gsampler-cube)
    ((core :initform T :reader core-typep)
     (glsl-string :initform "usamplerCube" :reader v-glsl-string)
     (element-type :initform 'V-UVEC4)))
  (def-v-type-class v-usampler-cube-array (v-sampler v-gsampler-cube-array)
    ((core :initform T :reader core-typep)
     (glsl-string :initform "usamplerCubeArray" :reader v-glsl-string)
     (element-type :initform 'V-UVEC4)))
  (def-v-type-class v-sampler-rect (v-sampler v-gsampler-rect)
    ((core :initform T :reader core-typep)
     (glsl-string :initform "samplerRect" :reader v-glsl-string)
     (element-type :initform 'V-UVEC4)))
  (def-v-type-class v-isampler-rect (v-sampler v-gsampler-rect)
    ((core :initform T :reader core-typep)
     (glsl-string :initform "isamplerRect" :reader v-glsl-string)
     (element-type :initform 'V-UVEC4)))
  (def-v-type-class v-usampler-rect (v-sampler v-gsampler-rect)
    ((core :initform T :reader core-typep)
     (glsl-string :initform "usamplerRect" :reader v-glsl-string)
     (element-type :initform 'V-UVEC4)))
  
negative.code:    (element-type :initform 'v-uint)
     (dimensions :initform '(3) :reader v-dimensions)
     (casts-to :initform '(v-dvec3 v-vec3))))
  (def-v-type-class v-uvec4 (v-uvector)
    ((core :initform t :reader core-typep)
     (glsl-string :initform "uvec4" :reader v-glsl-string)
     (element-type :initform 'v-uint)
     (dimensions :initform '(4) :reader v-dimensions)
     (casts-to :initform '(v-dvec4 v-vec4))))
  
  (def-v-type-class v-ivector (v-vector) ())
  (def-v-type-class v-ivec2 (v-ivector)
    ((core :initform t :reader core-typep)
     (glsl-string :initform "ivec2" :reader v-glsl-string)
     (element-type :initform 'v-int)
  