Okay, I've gotten through one list test. Getting stuff to pass is requiring some relatively subtle tweaks to make sure things have the right value at the right time. The latest bit of missing functionality looks like it's going to require plumbing more data through some of the functions.
Regardless, I may be really unsure what some of my latest changes are actually, like, doing, but the tests pass, so it must work perfectly. (It does not work perfectly.)
I've been looking into some other projects to try, so I might be due for a break from this; I'll see what I think next week.