Instead of duplicating the logic here, I'd rather use `adt::ty_of_inttype()` so it doesn't go out of sync.