separate underlying type inference from the combined analysis