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:         var)))
  
  (defun kernel-arg-foreign-pointer-bindings (arg-bindings)
    ; ((a float*) (b float*) (c float*) (n int)) → ((n n-ptr :int))
    (mapcar #'foreign-pointer-binding
      (remove-if-not #'arg-binding-with-non-pointer-type-p arg-bindings)))
  
  
negative.code: 
  (defun non-pointer-type-p (type)
    (assert (valid-type-p type))
    (find type '(void bool int float)))
  
  (defun pointer-type-p (type)
    (assert (valid-type-p type))
    (find type '(int* float*)))
  
  (defun valid-type-p (type)
    (find type '(void bool int int* float float*)))
  
  (defvar +cffi-type-table+ '(int :int
                              float :float))
  