anchor.diff:  ;;;    with integers less than K, must appear as an OUTPUT of a statement,
   ;;;    and never as an input.
   ;;;
  -;;; Furthermore, the transformation of an input or output must be a mapping
  -;;; from the iteration space of the kernel to the shape of the buffer.
  +;;; Furthermore, the following constraints apply:
  +;;;
  +;;; - Any transformation of an input or output must be a mapping from the
  +;;;   iteration space of the kernel to the shape of the buffer.
  +;;;
  +;;; - The list of types in a statement must have the same length as the
  +;;;   list of outputs.
   
   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   ;;;
  
positive.code:            (loop for output in outputs do
               (if (symbolp output)
                   (process-output-symbol output)
                   (verify-reference output iteration-space))))
            (t
             (error "~S is not a valid kernel language statement."
                    statement))))
  
negative.code: ;;;         OPERATOR := A function, or a symbol naming a bound function.
  ;;;
  ;;;                K := The number of output values of the reduction's operator.
  ;;;
  ;;;             TYPE := A type specifier.
  ;;;
  ;;;           BUFFER := An object of type PETALISP-IR:BUFFER.
  ;;;
  