(main dev writting)
Don't focus too much on the claimless :-) There still are far more wide spread tools that solve the same kind of issues (numba, cython, julia)...
The idea of the change was that it's more important to convey the problem it solves rather than how it's done ;-)
Nice project, I've wanted to do something similar using my libjit python bindings but never seem to work up the gumption.
Simple and Effective Type Check Removal through Lazy Basic Block Versioning[0] could be adapted to make it unnecessary to compile more than one version of the function at a (probably) minor cost of performance. It's geared more towards jitted code but something like it where it compiles different blocks where the types matter and falls back to interpreted code if users pass in some random types not expected just might work -- or the python interpreter throws an exception if the types don't make sense.
and
> a claimless python to c++ converter