anchor.diff:      - (t (((int int) int "-")
             ((float float) float "-")))
       * (t (((int int) int "*")
  -          ((float float) float "*")))))
  +          ((float float) float "*")))
  +    / (t (((int int) int "/")
  +          ((float float) float "/")))
  +    = (t (((int int) bool "=")
  +          ((float float) bool "=")))
  +    < (t (((int int) bool "<")
  +          ((float float) bool "<")))
  +    <= (t (((int int) bool "<=")
  +           ((float float) bool "<=")))
  +    ))
   
   (defun built-in-function-infix-p (op)
     (or (car (getf +built-in-functions+ op))
  
positive.code: 
  (defun non-pointer-type-p (type)
    (assert (valid-type-p type))
    (find type '(void int float)))
  
  (defun pointer-type-p (type)
    (assert (valid-type-p type))
    (find type '(int* float*)))
  
  (defun valid-type-p (type)
    (find type '(void int int* float float*)))
  
  (defvar +cffi-type-table+ '(int :int
                              float :float))
  
negative.code:       (getf +cffi-type-table+ type)))
  
  (defun kernel-arg-names (arg-bindings)
    ;; ((a float*) (b float*) (c float*) (n int)) -> (a b c n)
    (mapcar #'car arg-bindings))
  
  (defun kernel-arg-names-as-pointer (arg-bindings)
    ;; ((a float*) (b float*) (c float*) (n int)) -> (a b c n-ptr)
    (mapcar #'arg-name-as-pointer arg-bindings))
  
  (defun arg-name-as-pointer (arg-binding)
  