Invert the logic.
I wanted to add type checking to the C api, however if I do that, I should then
create a set of internal functions that don't do type checking.
But if I'm going to do that, then I'd rather just hang them off the nice class
I already have written. And the C api just becomes thunks to the class attributes.