Major refactoring of IType into multi-methods.