If typeInfer