anchor.diff:        (("outerProduct" "dmat4x2") (("c" "dvec2") ("r" "dvec4")))
         (("outerProduct" "dmat3x4") (("c" "dvec4") ("r" "dvec3")))
         (("outerProduct" "dmat4x3") (("c" "dvec3") ("r" "dvec4"))))
  -     (("outerProduct (float)" 120 130 140 150 330 400 410 420 430 440 450)
  -      ("outerProduct (double)" 400 410 420 430 440 450)))
  -    (((("packUnorm2x16" "uint") (("v" "vec2")))
  -      (("packSnorm2x16" "uint") (("v" "vec2")))
  -      (("packUnorm4x8" "uint") (("v" "vec4")))
  -      (("packSnorm4x8" "uint") (("v" "vec4"))))
  -     (("packUnorm2x16" 410 420 430 440 450) ("packSnorm2x16" 420 430 440 450)
  -      ("packUnorm4x8" 410 420 430 440 450) ("packSnorm4x8" 410 420 430 440 450)))
  -    (((("reflect" "genType") (("I" "genType") ("N" "genType")))
  -      (("reflect" "genDType") (("I" "genDType") ("N" "genDType"))))
  -     (("reflect (genType)" 110 120 130 140 150 330 400 410 420 430 440 450)
  -      ("reflect (genDType)" 400 410 420 430 440 450)))
  -    (((("refract" "genType") (("I" "genType") ("N" "genType") ("eta" "float")))
  -      (("refract" "genDType")
  -       (("I" "genDType") ("N" "genDType") ("eta" "float"))))
  -     (("refract (genType)" 110 120 130 140 150 330 400 410 420 430 440 450)
  -      ("refract (genDType)" 400 410 420 430 440 450)))
  +     (("outerProduct (double)" 400 410 420 430 440 450)))
  +    (((("packUnorm2x16" "uint") (("v" "vec2"))))
  +     (("packUnorm2x16" 410 420 430 440 450)))
  +    (((("packSnorm2x16" "uint") (("v" "vec2"))))
  +     (("packSnorm2x16" 420 430 440 450)))
  +    (((("packUnorm4x8" "uint") (("v" "vec4"))))
  +     (("packUnorm4x8" 410 420 430 440 450)))
  +    (((("packSnorm4x8" "uint") (("v" "vec4"))))
  +     (("packSnorm4x8" 410 420 430 440 450)))
  +    (((("reflect" "genType") (("I" "genType") ("N" "genType"))))
  +     (("reflect (genType)" 110 120 130 140 150 330 400 410 420 430 440 450)))
  +    (((("reflect" "genDType") (("I" "genDType") ("N" "genDType"))))
  +     (("reflect (genDType)" 400 410 420 430 440 450)))
  +    (((("refract" "genType") (("I" "genType") ("N" "genType") ("eta" "float"))))
  +     (("refract (genType)" 110 120 130 140 150 330 400 410 420 430 440 450)))
  +    (((("refract" "genDType") (("I" "genDType") ("N" "genDType") ("eta" "float"))))
  +     (("refract (genDType)" 400 410 420 430 440 450)))
       (((("round" "genType") (("x" "genType"))))
  -     (("round (genType)" 130 140 150 330 400 410 420 430 440 450)
  -      ("round (genDType)" 400 410 420 430 440 450)))
  +     (("round (genType)" 130 140 150 330 400 410 420 430 440 450)))
  +    (((("round" "genDType") (("x" "genDType"))))
  +     (("round (genDType)" 400 410 420 430 440 450)))
       (((("roundEven" "genType") (("x" "genType"))))
  -     (("roundEven (genType)" 130 140 150 330 400 410 420 430 440 450)
  -      ("roundEven (genDType)" 400 410 420 430 440 450)))
  +     (("roundEven (genType)" 130 140 150 330 400 410 420 430 440 450)))
  +    (((("roundEven" "genDType") (("x" "genDType"))))
  +     (("roundEven (genDType)" 400 410 420 430 440 450)))
       (((("sign" "genType") (("x" "genType"))))
  -     (("sign (genType)" 130 140 150 330 400 410 420 430 440 450)
  -      ("sign (genIType)" 150 330 400 410 420 430 440 450)
  -      ("sign (genDType)" 400 410 420 430 440 450)))
  -    (((("smoothstep" "genType")
  -       (("edge0" "genType") ("edge1" "genType") ("x" "genType"))))
  -     (("smoothstep (genType)" 130 140 150 330 400 410 420 430 440 450)
  -      ("smoothstep (genDType)" 400 410 420 430 440 450)))
  +     (("sign (genType)" 130 140 150 330 400 410 420 430 440 450)))
  +    (((("sign" "genIType") (("x" "genIType"))))
  +     (("sign (genIType)" 150 330 400 410 420 430 440 450)))
  +    (((("sign" "genDType") (("x" "genDType"))))
  +     (("sign (genDType)" 400 410 420 430 440 450)))
  +    (((("smoothstep" "genType") (("edge0" "genType") ("edge1" "genType") ("x" "genType"))))
  +     (("smoothstep (genType)" 130 140 150 330 400 410 420 430 440 450)))
  +    (((("smoothstep" "genDType") (("edge0" "genDType") ("edge1" "genDType") ("x" "genDType"))))
  +     (("smoothstep (genDType)" 400 410 420 430 440 450)))
       (((("sqrt" "genType") (("x" "genType"))))
  -     (("sqrt (genType)" 110 120 130 140 150 330 400 410 420 430 440 450)
  -      ("sqrt (genDType)" 400 410 420 430 440 450)))
  +     (("sqrt (genType)" 110 120 130 140 150 330 400 410 420 430 440 450)))
  +    (((("sqrt" "genDType") (("x" "genDType"))))
  +     (("sqrt (genDType)" 400 410 420 430 440 450)))
       (((("step" "genType") (("edge" "genType") ("x" "genType"))))
  -     (("step (genType)" 110 120 130 140 150 330 400 410 420 430 440 450)
  -      ("step (genDType)" 400 410 420 430 440 450)))
  -    (((("texelFetch" "gvec4")
  -       (("sampler" "gsampler1D") ("P" "int") ("lod" "int")))
  -      (("texelFetch" "gvec4")
  -       (("sampler" "gsampler2D") ("P" "ivec2") ("lod" "int")))
  -      (("texelFetch" "gvec4")
  -       (("sampler" "gsampler3D") ("P" "ivec3") ("lod" "int")))
  -      (("texelFetch" "gvec4") (("sampler" "gsampler2DRect") ("P" "ivec2")))
  -      (("texelFetch" "gvec4")
  -       (("sampler" "gsampler1DArray") ("P" "ivec2") ("lod" "int")))
  -      (("texelFetch" "gvec4")
  -       (("sampler" "gsampler2DArray") ("P" "ivec3") ("lod" "int")))
  -      (("texelFetch" "gvec4") (("sampler" "gsamplerBuffer") ("P" "int")))
  -      (("texelFetch" "gvec4")
  -       (("sampler" "gsampler2DMS") ("P" "ivec2") ("sample" "int")))
  -      (("texelFetch" "gvec4")
  -       (("sampler" "gsampler2DMSArray") ("P" "ivec3") ("sample" "int"))))
  -     (("texelFetch" 130 140 150 330 400 410 420 430 440 450)
  -      ("texelFetch (gsampler2DRect, gsamplerBuffer)" 140 150 330 400 410 420 430
  -						     440 450)
  -      ("texelFetch (gsampler2DMS, gsampler2DMSArray)" 150 330 400 410 420 430 440
  -						      450)))
  -    (((("texelFetchOffset" "gvec4")
  -       (("sampler" "gsampler1D") ("P" "int") ("lod" "int") ("offset" "int")))
  -      (("texelFetchOffset" "gvec4")
  -       (("sampler" "gsampler2D") ("P" "ivec2") ("lod" "int") ("offset" "int")))
  -      (("texelFetchOffset" "gvec4")
  -       (("sampler" "gsampler3D") ("P" "ivec3") ("lod" "int") ("offset" "int")))
  -      (("texelFetchOffset" "gvec4")
  -       (("sampler" "gsampler2DRect") ("P" "ivec2") ("offset" "int")))
  -      (("texelFetchOffset" "gvec4")
  -       (("sampler" "gsampler1DArray") ("P" "ivec2") ("lod" "int")
  -	("offset" "int")))
  -      (("texelFetchOffset" "gvec4")
  -       (("sampler" "gsampler2DArray") ("P" "ivec3") ("lod" "int")
  -	("offset" "int"))))
  -     (("texelFetchOffset" 130 140 150 330 400 410 420 430 440 450)
  -      ("texelFetchOffset (gsampler2DRect)" 140 150 330 400 410 420 430 440 450)
  -      ("texelFetchOffset (gsampler2DMS, gsampler2DMSArray)" 150 330 400 410 420
  -							    430 440 450)))
  +     (("step (genType)" 110 120 130 140 150 330 400 410 420 430 440 450)))
  +    (((("step" "genDType") (("edge" "genDType") ("x" "genDType"))))
  +     (("step (genDType)" 400 410 420 430 440 450)))
  +    (((("texelFetch" "gvec4") (("sampler" "gsampler1D") ("P" "int") ("lod" "int")))
  +      (("texelFetch" "gvec4") (("sampler" "gsampler2D") ("P" "ivec2") ("lod" "int")))
  +      (("texelFetch" "gvec4") (("sampler" "gsampler3D") ("P" "ivec3") ("lod" "int")))
  +      (("texelFetch" "gvec4") (("sampler" "gsampler1DArray") ("P" "ivec2") ("lod" "int")))
  +      (("texelFetch" "gvec4") (("sampler" "gsampler2DArray") ("P" "ivec3") ("lod" "int"))))
  +     (("texelFetch" 130 140 150 330 400 410 420 430 440 450)))
  +    (((("texelFetch" "gvec4") (("sampler" "gsampler2DRect") ("P" "ivec2")))
  +      (("texelFetch" "gvec4") (("sampler" "gsamplerBuffer") ("P" "int"))))
  +     (("texelFetch (gsampler2DRect, gsamplerBuffer)" 140 150 330 400 410 420 430 440 450)))
  +    (((("texelFetch" "gvec4") (("sampler" "gsampler2DMS") ("P" "ivec2") ("sample" "int")))
  +      (("texelFetch" "gvec4") (("sampler" "gsampler2DMSArray") ("P" "ivec3") ("sample" "int"))))
  +     (("texelFetch (gsampler2DMS, gsampler2DMSArray)" 150 330 400 410 420 430 440 450)))))
  +
  +(((("texelFetchOffset" "gvec4") (("sampler" "gsampler1D") ("P" "int") ("lod" "int") ("offset" "int")))
  +  (("texelFetchOffset" "gvec4") (("sampler" "gsampler2D") ("P" "ivec2") ("lod" "int") ("offset" "int")))
  +  (("texelFetchOffset" "gvec4") (("sampler" "gsampler3D") ("P" "ivec3") ("lod" "int") ("offset" "int")))
  +  (("texelFetchOffset" "gvec4") (("sampler" "gsampler2DRect") ("P" "ivec2") ("offset" "int")))
  +  (("texelFetchOffset" "gvec4") (("sampler" "gsampler1DArray") ("P" "ivec2") ("lod" "int") ("offset" "int")))
  +  (("texelFetchOffset" "gvec4") (("sampler" "gsampler2DArray") ("P" "ivec3") ("lod" "int") ("offset" "int"))))
  + (("texelFetchOffset" 130 140 150 330 400 410 420 430 440 450)
  +  ("texelFetchOffset (gsampler2DRect)" 140 150 330 400 410 420 430 440 450)
  +  ("texelFetchOffset (gsampler2DMS, gsampler2DMSArray)" 150 330 400 410 420 430 440 450)))
  +
  +(((("texelFetchOffset" "gvec4") (("sampler" "gsampler1D") ("P" "int") ("lod" "int") ("offset" "int")))
  +  (("texelFetchOffset" "gvec4") (("sampler" "gsampler2D") ("P" "ivec2") ("lod" "int") ("offset" "int")))
  +  (("texelFetchOffset" "gvec4") (("sampler" "gsampler3D") ("P" "ivec3") ("lod" "int") ("offset" "int")))
  +  (("texelFetchOffset" "gvec4") (("sampler" "gsampler2DRect") ("P" "ivec2") ("offset" "int")))
  +  (("texelFetchOffset" "gvec4") (("sampler" "gsampler1DArray") ("P" "ivec2") ("lod" "int") ("offset" "int")))
  +  (("texelFetchOffset" "gvec4") (("sampler" "gsampler2DArray") ("P" "ivec3") ("lod" "int") ("offset" "int"))))
  + (("texelFetchOffset" 130 140 150 330 400 410 420 430 440 450)
  +  ("texelFetchOffset (gsampler2DRect)" 140 150 330 400 410 420 430 440 450)
  +  ("texelFetchOffset (gsampler2DMS, gsampler2DMSArray)" 150 330 400 410 420 430 440 450)))
  +
  +(((("texelFetchOffset" "gvec4") (("sampler" "gsampler1D") ("P" "int") ("lod" "int") ("offset" "int")))
  +  (("texelFetchOffset" "gvec4") (("sampler" "gsampler2D") ("P" "ivec2") ("lod" "int") ("offset" "int")))
  +  (("texelFetchOffset" "gvec4") (("sampler" "gsampler3D") ("P" "ivec3") ("lod" "int") ("offset" "int")))
  +  (("texelFetchOffset" "gvec4") (("sampler" "gsampler2DRect") ("P" "ivec2") ("offset" "int")))
  +  (("texelFetchOffset" "gvec4") (("sampler" "gsampler1DArray") ("P" "ivec2") ("lod" "int") ("offset" "int")))
  +  (("texelFetchOffset" "gvec4") (("sampler" "gsampler2DArray") ("P" "ivec3") ("lod" "int") ("offset" "int"))))
  + (("texelFetchOffset" 130 140 150 330 400 410 420 430 440 450)
  +  ("texelFetchOffset (gsampler2DRect)" 140 150 330 400 410 420 430 440 450)
  +  ("texelFetchOffset (gsampler2DMS, gsampler2DMSArray)" 150 330 400 410 420 430 440 450)))
  +
  +(defparameter non-trivial
  +  '(
  +
  +
       (((("texture" "gvec4")
          (("sampler" "gsampler1D") ("P" "float") ("bias" "[float")))
         (("texture" "gvec4")
  
positive.code:      (("min (genUType)" 130 140 150 330 400 410 420 430 440 450)))
      (((("min" "genType") (("x" "genDType") ("y" "genDType"))))
       (("min (genDType)" 400 410 420 430 440 450)))
  
      (((("mix" "genType") (("x" "genType") ("y" "genType") ("a" "genType"))))
       (("mix(genType)" 110 120 130 140 150 330 400 410 420 430 440 450)))
      (((("mix" "genDType") (("x" "genDType") ("y" "genDType") ("a" "genDType"))))
  
negative.code:     (((("mix" "genUType") (("x" "genUType") ("y" "genUType") ("a" "genUType"))))
       (("mix(genUType)" 450)))
      (((("mix" "genBType") (("x" "genBType") ("y" "genBType") ("a" "genBType"))))
       (("mix(genBType)" 450)))
      (((("mod" "genType") (("x" "genType") ("y" "float"))))
       (("mod (genType)" 110 120 130 140 150 330 400 410 420 430 440 450)))
      (((("mod" "genType") (("x" "genDType") ("y" "float"))))
       (("mod (genDType)" 400 410 420 430 440 450)))
      (((("noise1" "float") (("x" "genType"))))
       (("noise1" 110 120 130 140 150 330 400 410 420 430 440 450)))
      (((("noise2" "vec2") (("x" "genType"))))
       (("noise2" 110 120 130 140 150 330 400 410 420 430 440 450)))
      (((("noise3" "vec3") (("x" "genType"))))
       (("noise3" 110 120 130 140 150 330 400 410 420 430 440 450)))
      (((("noise4" "vec4") (("x" "genType"))))
       (("noise4" 110 120 130 140 150 330 400 410 420 430 440 450)))
      (((("normalize" "genType") (("v" "genType"))))
       (("normalize (genType)" 110 120 130 140 150 330 400 410 420 430 440 450)))
      (((("normalize" "genDType") (("v" "genDType"))))
       (("normalize (genDType)" 400 410 420 430 440 450)))
      (((("notEqual" "bvec") (("x" "vec") ("y" "vec"))))
       (("notEqual (vec)" 110 120 130 140 150 330 400 410 420 430 440 450)))
      (((("notEqual" "bvec") (("x" "ivec") ("y" "ivec"))))
       (("notEqual (ivec)" 130 140 150 330 400 410 420 430 440 450)))
      (((("notEqual" "bvec") (("x" "uvec") ("y" "uvec"))))
       (("notEqual (uvec)" 130 140 150 330 400 410 420 430 440 450)))
      (((("outerProduct" "mat2") (("c" "vec2") ("r" "vec2")))
        (("outerProduct" "mat3") (("c" "vec3") ("r" "vec3")))
        (("outerProduct" "mat4") (("c" "vec4") ("r" "vec4")))
  