        (elisp/ert/instrument--branch vector branches (list expr) nil 0 1)
        branches))
     (`(,(or 'if-let 'if-let* 'when-let 'when-let* 'and-let*)
-       ,(and (pred elisp/ert/proper--list-p) spec) . ,_)
+       ,(and (pred proper-list-p) spec) . ,_)
      (let ((branches (make-vector (* 2 (length spec)) nil)))
        (cl-loop for binding in spec
                 and index from 0 by 2

                                                 index nil nil))
       branches))
    (`(,(or 'condition-case 'condition-case-unless-debug)
       ,_var ,bodyform . ,(and (pred elisp/ert/proper--list-p) clauses))
     ;; Similar to the ‘cond’ case, but here we have one branch for each handler
     ;; as well as one branch for a successful exit.
     (let ((branches (make-vector (1+ (length clauses)) nil)))

                                                     buffer-2 nil nil)
                          0)))))))))

(defun elisp/ert/sanitize--xml (tree)
  "Return a sanitized version of the XML TREE."
  ;; This is necessary because ‘xml-print’ sometimes generates invalid XML,
