Firm types

It doesn't matter here that `P` is only a 32 bit type since we do our own code generation anyway, right? Could add a comment.