anchor.diff:           (warn "GLSL stages cannot be used from the cpu")))))
   
   (defun glsl-stage-spec-to-varjo-compile-result
  -    (in-args uniforms outputs context body-string)
  +    (stage-kind in-args uniforms outputs context body-string)
     "Here our goal is to simple reuse as much from varjo as possible.
      This will mean we have less duplication, even if things seem a little
      ugly here"
  
positive.code:          (arg-types (mapcar #'type-spec->type
                              (append (mapcar #'second in-args)
                                      (mapcar #'second uniforms))))
           (stage (varjo:make-stage in-args uniforms context
                                    nil nil)))
      (first
       (multiple-value-list
  
negative.code:     (let* ((in-args (mapcar #'process-glsl-in-arg in-args))
             (uniforms (mapcar #'process-glsl-uniform-arg uniforms))
             (body-string (get-body-string body-form))
             (stage-kind (varjo::get-stage-kind-from-context context))
             (context (remove stage-kind context))
             (spec (%make-glsl-stage-spec ;;[0]
                    name in-args uniforms context body-string
                    (glsl-stage-spec-to-varjo-compile-result ;;[1]
                     stage-kind in-args uniforms outputs context body-string))))
        (%update-glsl-stage-data spec)
        `(progn
           ,(%make-stand-in-lisp-func-for-glsl-stage spec);;[2]
  