anchor.diff:  (in-package #:clutter)
   
   (declaim (optimize debug))
  +
  +(defstruct (split-val (:constructor split-val (llvm clutter)))
  +  llvm
  +  clutter)
   
   (defvar *context* (llvm:global-context))
   (defvar *module*)
  
positive.code:     (unless (llvm:verify-function fobj)
        (error "Invalid function ~A" func))))
  
  (defun clutter-compile (main &optional (output "binary"))
    "Write a binary to OUTPUT which invokes clutter function MAIN on execution."
    (init-llvm)
  
negative.code:   (setf *builder* (llvm:make-builder))
    (unwind-protect
         (progn
           (compile-func main (clone-env-tree (clutter-operator-env (clutter-function-operator main))))
           (llvm:dump-module *module*)
           (llvm:write-bitcode-to-file *module* output))
      (llvm:dispose-module *module*)
      (llvm:dispose-builder *builder*)))
  