anchor.diff:          (error "The result of the test must be a bool.~%~a"
                  (code-type test)))))
   
  +
  +;; [TODO] double check implications of typify in compile-let-forms
   (vdefspecial for (var-form condition update &rest body)
     "(for (a 0) (< a 10) (++ a)
        (* a 2))"
  
positive.code:                  :to-block (append 
                              (mapcan #'to-block form-objs)
                              (mapcar (lambda (x) 
                                        (current-line (end-line x))) 
                                      form-objs)
                              (to-block prog-ob))
                   :to-top (append (mapcan #'to-top form-objs)
  
negative.code:                                (mapcar #'reverse args)
                                 (to-block body-obj) 
                                 (current-line (end-line body-obj)))))
  
                 :out-vars (out-vars body-obj))
                (error "Some of the return statements in function '~a' return different types~%~a~%~a" name type returns)))))))
  
  (vdefspecial %make-var (name type)
  