Creating this PR as a draft, because this is quite the chore and I want to be able to track the process and not just dump a huge blob of changes.
HOWEVER I have no idea how I am going to achieve that, since changes to the examples and benches depend on the changes to the lib. And way too many examples, lib code and tests currently refuse to compile, and fixing compilation errors is all-or-none kind of game.
I'll do my best, but any tips are welcome.