Improved type inference, but something is still broken with
instantiation of type variables.