Firm types

`throw new IllegalArgumentException`?