anchor.diff:  
   (v-def-glsl-template-fun %/ (a b) "(~a / ~a)" (v-number v-number) nil)
   (v-def-glsl-template-fun %/ (a b) "(~a / ~a)" (v-vector v-number) 0)
  -(v-def-glsl-template-fun %/ (a b) "(~a / ~a)" (v-vector v-vector) nil)
  +(v-def-glsl-template-fun %/ (a b) "(~a / ~a)" (v-vec2 v-vec2) 0)
  +(v-def-glsl-template-fun %/ (a b) "(~a / ~a)" (v-vec3 v-vec3) 0)
  +(v-def-glsl-template-fun %/ (a b) "(~a / ~a)" (v-vec4 v-vec4) 0)
  +
  +(v-def-glsl-template-fun %/ (a b) "(~a / ~a)" (v-ivec2 v-ivec2) 0)
  +(v-def-glsl-template-fun %/ (a b) "(~a / ~a)" (v-ivec3 v-ivec3) 0)
  +(v-def-glsl-template-fun %/ (a b) "(~a / ~a)" (v-ivec4 v-ivec4) 0)
  +
  +(v-def-glsl-template-fun %/ (a b) "(~a / ~a)" (v-uvec2 v-uvec2) 0)
  +(v-def-glsl-template-fun %/ (a b) "(~a / ~a)" (v-uvec3 v-uvec3) 0)
  +(v-def-glsl-template-fun %/ (a b) "(~a / ~a)" (v-uvec4 v-uvec4) 0)
  +
  +(v-def-glsl-template-fun %/ (a b) "(~a / ~a)" (v-dvec2 v-dvec2) 0)
  +(v-def-glsl-template-fun %/ (a b) "(~a / ~a)" (v-dvec3 v-dvec3) 0)
  +(v-def-glsl-template-fun %/ (a b) "(~a / ~a)" (v-dvec4 v-dvec4) 0)
   
   (v-def-glsl-template-fun v! (v) "~a" (v-vec2) v-vec2)
   (v-def-glsl-template-fun v! (v) "~a" (v-vec2) v-vec3)
  
positive.code: 
  (v-def-glsl-template-fun %- (a b) "(~a - ~a)" (v-number v-number) nil)
  (v-def-glsl-template-fun %- (a) "(- ~a)" (v-number) 0)
  (v-def-glsl-template-fun %- (a b) "(~a - ~a)" (v-vec2 v-vec2) 0)
  (v-def-glsl-template-fun %- (a b) "(~a - ~a)" (v-vec3 v-vec3) 0)
  (v-def-glsl-template-fun %- (a b) "(~a - ~a)" (v-vec4 v-vec4) 0)
  (v-def-glsl-template-fun %- (a) "(-~a)" (v-vec2) 0)
  (v-def-glsl-template-fun %- (a) "(-~a)" (v-vec3) 0)
  (v-def-glsl-template-fun %- (a) "(-~a)" (v-vec4) 0)
  
  (v-def-glsl-template-fun %- (a b) "(~a - ~a)" (v-ivec2 v-ivec2) 0)
  (v-def-glsl-template-fun %- (a b) "(~a - ~a)" (v-ivec3 v-ivec3) 0)
  
negative.code: (v-def-glsl-template-fun %- (a b) "(~a - ~a)" (v-dvec4 v-dvec4) 0)
  
  (v-def-glsl-template-fun %* (a b) "(~a * ~a)" (v-number v-number) nil)
  (v-def-glsl-template-fun %* (a b) "(~a * ~a)" (v-vec2 v-vec2) 0)
  (v-def-glsl-template-fun %* (a b) "(~a * ~a)" (v-vec3 v-vec3) 0)
  (v-def-glsl-template-fun %* (a b) "(~a * ~a)" (v-vec4 v-vec4) 0)
  
  (v-def-glsl-template-fun %* (a b) "(~a * ~a)" (v-ivec2 v-ivec2) 0)
  (v-def-glsl-template-fun %* (a b) "(~a * ~a)" (v-ivec3 v-ivec3) 0)
  (v-def-glsl-template-fun %* (a b) "(~a * ~a)" (v-ivec4 v-ivec4) 0)
  
  (v-def-glsl-template-fun %* (a b) "(~a * ~a)" (v-uvec2 v-uvec2) 0)
  (v-def-glsl-template-fun %* (a b) "(~a * ~a)" (v-uvec3 v-uvec3) 0)
  (v-def-glsl-template-fun %* (a b) "(~a * ~a)" (v-uvec4 v-uvec4) 0)
  
  (v-def-glsl-template-fun %* (a b) "(~a * ~a)" (v-dvec2 v-dvec2) 0)
  (v-def-glsl-template-fun %* (a b) "(~a * ~a)" (v-dvec3 v-dvec3) 0)
  (v-def-glsl-template-fun %* (a b) "(~a * ~a)" (v-dvec4 v-dvec4) 0)
  (v-def-glsl-template-fun %* (a b) "(~a * ~a)" (v-matrix v-matrix) nil)
  
  (v-def-glsl-template-fun %* (a b) "(~a * ~a)" (v-mat2 v-vec2) 1)
  