anchor.diff:  (uiop:define-package :petalisp/utilities/ucons
     (:use :closer-common-lisp :alexandria)
     (:export
  -   #:ucons #:ucar #:ucdr #:ucaar #:ucadr #:ucdar #:ucddr
  -   #:ulist #:ulist* #:ulength
  -   #:ulist-shallow-copy #:ulist-deep-copy
  +   #:ucons
  +   #:ucar
  +   #:ucdr
  +   #:ulist
  +   #:ulist*
  +   #:ulength
  +   #:ulist-shallow-copy
  +   #:ulist-deep-copy
      #:map-ulist
      #:do-ulist))
   
  
positive.code:   "Return a list of the elements of ULIST."
    (declare (ulist ulist))
    (loop while ulist
          collect (ucons-car ulist)
          do (setf ulist (ucons-cdr ulist))))
  
  (defun ulist-deep-copy (ulist)
    "Return a tree of the same shape as ULIST, but where all occuring ulists
     have been converted to lists."
    (declare (ulist ulist))
    (loop while ulist
          collect (let ((car (ucons-car ulist)))
                    (if (uconsp car)
                        (ulist-deep-copy car)
                        car))
          do (setf ulist (ucons-cdr ulist))))
  
  (defmethod print-object ((ulist ucons) stream)
    (cond (*print-pretty*
  
negative.code:         (t
           (write-string "[" stream)
           (loop while ulist do
             (write (ucar ulist) :stream stream)
             (when (ucdr ulist)
               (write-string " " stream))
             (setf ulist (ucdr ulist)))
           (write-string "]" stream))))
  