did the nudl bug first. those were several bugs:
* `&(*some_shared_ptr)` is no longer a legal operation in gcc-15 when the pointer is null. possibly never worked, and i didn't know. replaced with `some_shared_ptr.get()`.
* out of bounds std::vector access is now caught by an assertion. apparently this used to be assertion-free, and so i didn't notice.
so the stdlib got more robust and therefore i found more errors.
