anchor.diff:          (error 'kaleidoscope-error :message "Expected ')' in prototype"))
         (get-next-token)
         (when (and operator-arity (/= (length arg-names) operator-arity))
  -        (error 'kaleidoscope-error :message "Invalid number of operands for operator"))
  +        (error 'kaleidoscope-error
  +               :message "Invalid number of operands for operator"))
         (make-instance 'prototype
           :name function-name :arguments arg-names
           :operatorp operator-arity :precedence binary-precedence))))
  
positive.code:         (when lf
            (llvm:dump-value lf)
            (let ((ptr (llvm:pointer-to-global *execution-engine* lf)))
              ;; FIXME: hopefully it's not necessary to explicitly set the memory
              ;;        to be executable.
              ;;(#_mprotect ptr 1024 (logior #$PROT_READ #$PROT_WRITE #$PROT_EXEC))
              (format *error-output* "Evaluated to ~f"
                      (if (eql ptr lf) ; we have an interpreter
                        (llvm:generic-value-to-float
                         (llvm:double-type)
  
negative.code: ;;; driver
  
  (defun toplevel ()
    ;; NOTE: The C version of the tutorial doesn't initialize any target, but
    ;;       expects that a JIT is created. I think it's just out of date.
    (llvm:initialize-native-target)
    ;; install standard binary operators
    ;; 1 is lowest precedence
    (setf (gethash #\= *binop-precedence*) 2
  