anchor.diff:    (fresh-line-indented s)
     (format s "{")
     (with-indent
  -      (loop for stmt in (block-statements elm)
  -            do
  -            (fresh-line-indented s)
  -            (pretty-print stmt s)
  -            (format s ";")))
  +    (loop for stmt in (block-statements elm)
  +          do
  +          (fresh-line-indented s)
  +          (pretty-print stmt s)
  +          (format s ";")))
     (fresh-line-indented s)
     (format s "}"))
   
  
positive.code:     (format s "else")
      (pretty-print-subordinate (if-else-statement elm) s)))
  
  ;;HERE: Next step, do/while/for/for-in statements
  
  (defun test-pretty-printer ()
    (flet ((check (elm string)
  
negative.code: ;; single statements, but not blocks (because blocks will do the indentation for us).
  ;; In those situations, use pretty-print-subordinate instead of pretty-print; it will
  ;; indent correctly depending upon the type of source-element that it receives.
  ;; TODO The semicolon keyword will disappear once we are dealing correctly with semicolon termination
  (defmethod pretty-print-subordinate ((elm block) s &key semicolon)
    (declare (ignore semicolon))
    (pretty-print elm s))
  
  (defmethod pretty-print-subordinate (elm s &key semicolon)
    (with-indent
      (fresh-line-indented s)
      (pretty-print elm s)
      (if semicolon
        (format s ";"))))
  
  ;;;;; General helpers
  (defun pretty-print-separated-list (elm-list s &optional (sep-string ", "))
  