anchor.diff:  (defvar *context* (llvm:global-context))
   (defvar *module*)
   (defvar *builder*)
  +(defvar *toplevel*)
   
   (defvar *compiler-prims* (make-hash-table :test 'eq))
   (defun compiler-prim? (clutter-val)
  
positive.code:         (target-env (split-val-clutter (lookup target-env callsite-env))))
      (extend target-env symbol
              (split-val
               (llvm:add-global *module* (llvm:type-of llvm-value)
                                (clutter-symbol-name symbol)) nil))
      (llvm::set-initializer (split-val-llvm (lookup symbol target-env)) llvm-value)))
  
  (def-compiler-primop "set-in!" callsite-env (target-env name value)
    (setf (lookup name target-env) (compile-form value callsite-env))
    (llvm:build-store *builder*
                      (compile-form value callsite-env)
                      (split-val-llvm (lookup name (lookup target-env callsite-env)))))
  
  ;;; Arithmetic
  (defun build-arith-op (name initial func args)
  
negative.code:     return-value))
  
  (def-compiler-primop "lambda" env (vau-list &rest body)
    (let* ((*toplevel* nil)
           (argtypes (make-array (length vau-list) :initial-element (llvm:int32-type)))
           (ftype (llvm:function-type (llvm:int32-type) argtypes))
           (fobj (llvm:add-function *module* "lambda" ftype))
           (fenv (make-env env)))
  