anchor.diff:           (tagbody
             loop-start
             ,@(and label (list label))
  -            ,@(and body (list body))
  +            (progn ,@(and body (list body)))
             ,@(and lb-cn (list label))
             ,@(and cn '(loop-continue))
               (when ,(to-boolean-typed (translate cond) (ast-type cond))
  
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:                            ,(if (or cn lb-cn)
                                  `(block nil
                                     (tagbody
                                        (progn ,body)
                                      ,@(and cn '(loop-continue))
                                      ,@(and lb-cn (list label))))
                                  body)))
  