anchor.diff:                                                 :r8)))
                    (push arg (first *environment*)))
                   (t (return-from codegen-lambda
  -                     (sys.int::assemble-lap `((sys.lap-x86:mov64 :r13 (:constant error))
  +                     (sys.int::assemble-lap `((sys.lap-x86:push 0)
  +                                              (sys.lap-x86:mov64 :r13 (:constant error))
                                                 (sys.lap-x86:mov32 :ecx ,(fixnum-to-raw 1))
                                                 (sys.lap-x86:mov64 :r8 (:constant "TODO: special required variables"))
                                                 (sys.lap-x86:call (:symbol-function :r13))
  
positive.code:                              (zerop (lexical-variable-use-count rest-arg)))))
            (unless (lexical-variable-p rest-arg)
              (return-from codegen-lambda
                (sys.int::assemble-lap `((sys.lap-x86:mov64 :r13 (:constant error))
                                         (sys.lap-x86:mov32 :ecx ,(fixnum-to-raw 1))
                                         (sys.lap-x86:mov64 :r8 (:constant "TODO: special variables. &REST"))
                                         (sys.lap-x86:call (:symbol-function :r13))
  
negative.code:                     (and (third arg)
                           (not (lexical-variable-p (third arg)))))
              (return-from codegen-lambda
                (sys.int::assemble-lap `((sys.lap-x86:push 0)
                                         (sys.lap-x86:mov64 :r13 (:constant error))
                                         (sys.lap-x86:mov32 :ecx ,(fixnum-to-raw 1))
                                         (sys.lap-x86:mov64 :r8 (:constant "TODO: special variables. &OPTIONAL"))
                                         (sys.lap-x86:call (:symbol-function :r13))
  