anchor.diff:                             ,(if (or cn lb-cn)
                                   `(block nil
                                      (tagbody
  -                                      ,body
  +                                      (progn ,body)
                                       ,@(and cn '(loop-continue))
                                       ,@(and lb-cn (list label))))
                                   body)))
  
positive.code:       (declare (ignore br lb-br))
        `(block ,label
           (tagbody
              ,@(translate@ init)
            loop-start
              (unless ,(if cond
                           (to-boolean-typed (translate cond) (ast-type cond))
                           t)
                (go loop-end))
              ,@(and body (list body))
            ,@(and lb-cn (list label))
            ,@(and cn '(loop-continue))
              ,@(translate@ step)
              (go loop-start)
            loop-end)))))
  
  
negative.code:          (tagbody
            loop-start
            ,@(and label (list label))
              (progn ,@(and body (list body)))
            ,@(and lb-cn (list label))
            ,@(and cn '(loop-continue))
              (when ,(to-boolean-typed (translate cond) (ast-type cond))
  