anchor.diff:  (defun assemble-if (out x)
     (push *disabled?* *block-stack*)
     (push *data?* *block-stack*)
  -  (= *disabled?* (zero? (assemble-expression ..x. :ensure? t))))
  +  (= *disabled?* (not (assemble-expression ..x. :ensure? t :not-zero? t))))
   
   (defun assemble-data (out x)
     (push *disabled?* *block-stack*)
  
positive.code:      (assembler-error "ASM expects one or more string."))
    (mapcan [parse-string (format nil "~A~%" _)] x))
  
  (defun assemble-expression (x &key (ensure? nil))
    (| (& (number? x) x)
       (case x.
         'expression  (unless (& (not ensure?)
                                 (first-pass?))
                        (eval (macroexpand (labels-to-exprs .x))))
         'identifier  (get-label .x :required? (not (first-pass?))))
       0))
  
  (defun assemble-byte (out x)
    (| *data?*
  
negative.code: (defvar *block-stack* nil)
  (defvar *cycles* nil)
  (defvar *acycles* 0)
  (defun assembler-error (x &rest fmt)
    (alet *assembler-current-line*.
      (error "~LError while assembling '~A', line ~A:~%~A~A"
  