Interestingly, the more times I run my now-slow code, the slower it gets, and the slower the trivial test expression I sent earlier gets, too.
And threads-list is now broken: 1 ]=> (threads-list) ;The object #[weak-cons 32], passed as the first argument to set-cdr!, is not the correct type. ;To continue, call RESTART with an option number: ; (RESTART 1) => Return to read-eval-print level 1. 2 error> (debug) There are 13 subproblems on the stack. Subproblem level: 0 (this is the lowest subproblem level) Expression (from stack): (set-cdr! #[weak-cons 32] #[weak-cons 33]) There is no current environment. There is no execution history for this subproblem. You are now in the debugger. Type q to quit, ? for commands. Investigating.