anchor.diff:     (dimensions :initform '(4 4) :reader v-dimensions)
      (glsl-size :initform 4)
      (casts-to :initform '(v-dmat4))))
  -(def-v-type-class V-DMAT2X2 (v-dmatrix)
  +(def-v-type-class v-dmat2x2 (v-dmatrix)
     ((core :initform T :reader core-typep)
      (glsl-string :initform "mat2x2" :reader v-glsl-string)
      (element-type :initform 'V-DOUBLE)
      (dimensions :initform '(2 2) :reader v-dimensions)
      (glsl-size :initform 2)))
  -(def-v-type-class V-DMAT2X3 (v-dmatrix)
  +(def-v-type-class v-dmat2x3 (v-dmatrix)
     ((core :initform T :reader core-typep)
      (glsl-string :initform "mat2x3" :reader v-glsl-string)
      (element-type :initform 'V-DOUBLE)
      (dimensions :initform '(2 3) :reader v-dimensions)
      (glsl-size :initform 2)
      (casts-to :initform '(v-dmat2x3))))
  -(def-v-type-class V-DMAT2X4 (v-dmatrix)
  +(def-v-type-class v-dmat2x4 (v-dmatrix)
     ((core :initform T :reader core-typep)
      (glsl-string :initform "mat2x4" :reader v-glsl-string)
      (element-type :initform 'V-DOUBLE)
      (dimensions :initform '(2 4) :reader v-dimensions)
      (glsl-size :initform 2)
      (casts-to :initform '(v-dmat2x4))))
  -(def-v-type-class V-DMAT3X2 (v-dmatrix)
  +(def-v-type-class v-dmat3x2 (v-dmatrix)
     ((core :initform T :reader core-typep)
      (glsl-string :initform "mat3x2" :reader v-glsl-string)
      (element-type :initform 'V-DOUBLE)
      (dimensions :initform '(3 2) :reader v-dimensions)
      (glsl-size :initform 3)
      (casts-to :initform '(v-dmat3x2))))
  -(def-v-type-class V-DMAT3X3 (v-dmatrix)
  +(def-v-type-class v-dmat3x3 (v-dmatrix)
     ((core :initform T :reader core-typep)
      (glsl-string :initform "mat3x3" :reader v-glsl-string)
      (element-type :initform 'V-DOUBLE)
      (dimensions :initform '(3 3) :reader v-dimensions)
      (glsl-size :initform 3)))
  -(def-v-type-class V-DMAT3X4 (v-dmatrix)
  +(def-v-type-class v-dmat3x4 (v-dmatrix)
     ((core :initform T :reader core-typep)
      (glsl-string :initform "mat3x4" :reader v-glsl-string)
      (element-type :initform 'V-DOUBLE)
      (dimensions :initform '(3 4) :reader v-dimensions)
      (glsl-size :initform 3)
      (casts-to :initform '(v-dmat3x4))))
  -(def-v-type-class V-DMAT4X2 (v-dmatrix)
  +(def-v-type-class v-dmat4x2 (v-dmatrix)
     ((core :initform T :reader core-typep)
      (glsl-string :initform "mat4x2" :reader v-glsl-string)
      (element-type :initform 'V-DOUBLE)
      (dimensions :initform '(4 2) :reader v-dimensions)
      (glsl-size :initform 4)
      (casts-to :initform '(v-dmat4x2))))
  -(def-v-type-class V-DMAT4X3 (v-dmatrix)
  +(def-v-type-class v-dmat4x3 (v-dmatrix)
     ((core :initform T :reader core-typep)
      (glsl-string :initform "mat4x3" :reader v-glsl-string)
      (element-type :initform 'V-DOUBLE)
      (dimensions :initform '(4 3) :reader v-dimensions)
      (glsl-size :initform 4)
      (casts-to :initform '(v-dmat4x3))))
  -(def-v-type-class V-DMAT4X4 (v-dmatrix)
  +(def-v-type-class v-dmat4x4 (v-dmatrix)
     ((core :initform T :reader core-typep)
      (glsl-string :initform "mat4x4" :reader v-glsl-string)
      (element-type :initform 'V-DOUBLE)
  
positive.code:    (casts-to :initform '(v-uvec4 v-vec4 v-dvec4))))
  
  (def-v-type-class v-sampler (v-type) ())
  (def-v-type-class V-ISAMPLER-1D (v-sampler)
    ((core :initform T :reader core-typep)
     (glsl-string :initform "isampler1D" :reader v-glsl-string)
     (element-type :initform 'V-VEC4)))
  (def-v-type-class V-ISAMPLER-1D-ARRAY (v-sampler v-gsampler-1d-array)
    ((core :initform T :reader core-typep)
     (glsl-string :initform "isampler1DArray" :reader v-glsl-string)
     (element-type :initform 'V-VEC4)))
  (def-v-type-class V-ISAMPLER-2D (v-sampler)
    ((core :initform T :reader core-typep)
     (glsl-string :initform "isampler2D" :reader v-glsl-string)
     (element-type :initform 'V-VEC4)))
  (def-v-type-class V-ISAMPLER-2D-ARRAY (v-sampler v-gsampler-2d-array)
    ((core :initform T :reader core-typep)
     (glsl-string :initform "isampler2DArray" :reader v-glsl-string)
     (element-type :initform 'V-VEC4)))
  (def-v-type-class V-ISAMPLER-2D-MS (v-sampler)
    ((core :initform T :reader core-typep)
     (glsl-string :initform "isampler2DMS" :reader v-glsl-string)
     (element-type :initform 'V-VEC4)))
  (def-v-type-class V-ISAMPLER-2D-MS-ARRAY (v-sampler)
    ((core :initform T :reader core-typep)
     (glsl-string :initform "isampler2DMSArray" :reader v-glsl-string)
     (element-type :initform 'V-VEC4)))
  (def-v-type-class V-ISAMPLER-2D-RECT (v-sampler)
    ((core :initform T :reader core-typep)
     (glsl-string :initform "isampler2DRect" :reader v-glsl-string)
     (element-type :initform 'V-VEC4)))
  (def-v-type-class V-ISAMPLER-3D (v-sampler)
    ((core :initform T :reader core-typep)
     (glsl-string :initform "isampler3D" :reader v-glsl-string)
     (element-type :initform 'V-VEC4)))
  (def-v-type-class V-ISAMPLER-BUFFER (v-sampler)
    ((core :initform T :reader core-typep)
     (glsl-string :initform "isamplerBuffer" :reader v-glsl-string)
     (element-type :initform 'V-VEC4)))
  (def-v-type-class V-ISAMPLER-CUBE (v-sampler)
    ((core :initform T :reader core-typep)
     (glsl-string :initform "isamplerCube" :reader v-glsl-string)
     (element-type :initform 'V-VEC4)))
  (def-v-type-class V-ISAMPLER-CUBE-ARRAY (v-sampler v-gsampler-cube-array)
    ((core :initform T :reader core-typep)
     (glsl-string :initform "isamplerCubeArray" :reader v-glsl-string)
     (element-type :initform 'V-VEC4)))
  (def-v-type-class v-sampler-1D (v-sampler)
    ((core :initform T :reader core-typep)
     (glsl-string :initform "sampler1D" :reader v-glsl-string)
     (element-type :initform 'V-VEC4)))
  (def-v-type-class v-sampler-1D-ARRAY (v-sampler v-gsampler-1d-array)
    ((core :initform T :reader core-typep)
     (glsl-string :initform "sampler1DArray" :reader v-glsl-string)
     (element-type :initform 'V-VEC4)))
  (def-v-type-class v-sampler-1D-ARRAY-SHADOW
      (v-sampler v-gsampler-1d-array-shadow)
    ((core :initform T :reader core-typep)
     (glsl-string :initform "sampler1DArrayShadow" :reader
                  glsl-string)
     (element-type :initform 'V-VEC4)))
  (def-v-type-class v-sampler-1D-SHADOW (v-sampler v-gsampler-1d-shadow)
    ((core :initform T :reader core-typep)
     (glsl-string :initform "sampler1DShadow" :reader v-glsl-string)
     (element-type :initform 'V-VEC4)))
  (def-v-type-class v-sampler-2D (v-sampler)
    ((core :initform T :reader core-typep)
     (glsl-string :initform "sampler2D" :reader v-glsl-string)
     (element-type :initform 'V-VEC4)))
  (def-v-type-class v-sampler-2D-ARRAY (v-sampler v-gsampler-2d-array)
    ((core :initform T :reader core-typep)
     (glsl-string :initform "sampler2DArray" :reader v-glsl-string)
     (element-type :initform 'V-VEC4)))
  (def-v-type-class v-sampler-2D-ARRAY-SHADOW
      (v-sampler v-gsampler-2d-array-shadow)
    ((core :initform T :reader core-typep)
     (glsl-string :initform "sampler2DArrayShadow" :reader
                  glsl-string)
     (element-type :initform 'V-VEC4)))
  (def-v-type-class v-sampler-2D-MS (v-sampler)
    ((core :initform T :reader core-typep)
     (glsl-string :initform "sampler2DMS" :reader v-glsl-string)
     (element-type :initform 'V-VEC4)))
  (def-v-type-class v-sampler-2D-MS-ARRAY (v-sampler v-gsampler-2d-ms-array)
    ((core :initform T :reader core-typep)
     (glsl-string :initform "sampler2DMSArray" :reader v-glsl-string)
     (element-type :initform 'V-VEC4)))
  (def-v-type-class v-sampler-2D-RECT (v-sampler)
    ((core :initform T :reader core-typep)
     (glsl-string :initform "sampler2DRect" :reader v-glsl-string)
     (element-type :initform 'V-VEC4)))
  (def-v-type-class v-sampler-2D-RECT-SHADOW (v-sampler v-gsampler-rect-shadow)
    ((core :initform T :reader core-typep)
     (glsl-string :initform "sampler2DRectShadow" :reader
                  glsl-string)
     (element-type :initform 'V-VEC4)))
  (def-v-type-class v-sampler-2D-SHADOW (v-sampler v-gsampler-2d-shadow)
    ((core :initform T :reader core-typep)
     (glsl-string :initform "sampler2DShadow" :reader v-glsl-string)
     (element-type :initform 'V-VEC4)))
  (def-v-type-class v-sampler-3D (v-sampler)
    ((core :initform T :reader core-typep)
     (glsl-string :initform "sampler3D" :reader v-glsl-string)
     (element-type :initform 'V-VEC4)))
  (def-v-type-class v-sampler-BUFFER (v-sampler)
    ((core :initform T :reader core-typep)
     (glsl-string :initform "samplerBuffer" :reader v-glsl-string)
     (element-type :initform 'V-VEC4)))
  (def-v-type-class v-sampler-CUBE (v-sampler)
    ((core :initform T :reader core-typep)
     (glsl-string :initform "samplerCube" :reader v-glsl-string)
     (element-type :initform 'V-VEC4)))
  (def-v-type-class v-sampler-CUBE-ARRAY (v-sampler v-gsampler-cube-array)
    ((core :initform T :reader core-typep)
     (glsl-string :initform "samplerCubeArray" :reader v-glsl-string)
     (element-type :initform 'V-VEC4)))
  
negative.code: (in-package :varjo)
  
  ;;----------------------------------------------------------------------
  