Firm types

`ExtendedInt` should be special-cased; its only possible value is `2^31`, which cannot be represented in `Mode.getIs`. We should throw an exception instead and all cases of `ExtendedInt` should be handled in the code.