I've got the failures down to just a few in punq's suite, which, I did rework nearly everything, so, fair.
Where I'm at now in addressing these is, I now understand the arguments to the resolve function better, and now I realize I was accidentally changing the semantics. I'm trying reverting my changes and seeing if the result just works. It actually seems plausible. And, it looks like it's working. Just some minor tweaks after I finish testing, and then I can move on to fixing other stuff.
Anyway, getting punq to do what I want was far harder and less pleasant than anyone could have politely predicted, and it's not quite done. Current problem: I somehow broke the logic that I didn't understand in the first place, what a shock. It's passing too many arguments under some circumstances, so I've got to figure out why it's doing that and how to make it stop.
Tomorrow. I'll do that tomorrow.
Anyway, I've sort of alluded to the potential of porting my changes back to the official version of punq, and that now seems very unlikely to me. My fork is a future of punq, in that it was directly developed from it, but I highly doubt it's the future, due to the sheer scale of the breaking changes to it, and my introduction of syntax from Python 3.8. When it's ready for public consumption, which it definitely isn't currently, I'll have to discuss and think about it some more, to figure out what I want to do.
Anyway, I let this entry go too late for everything I want to get done, so I should wrap up.