DESTRUCTURING-BIND relies on sequential evaluation in its generated bindings, so must be updated to use LET*:
diff --git a/src/lib/ps-macro-lib.lisp b/src/lib/ps-macro-lib.lisp index cb413cf..5c65ad6 100644 --- a/src/lib/ps-macro-lib.lisp +++ b/src/lib/ps-macro-lib.lisp @@ -146,4 +146,4 @@ (mapcan (lambda (var) (incf n) (when var `((,var (aref ,arr ,n))))) vars)))) - `(let ,bindings ,@body))) + `(let* ,bindings ,@body)))
- Scott