Let's don't have a separate rule alone here. The problem here seems like when the type is inferred from single partition alone, and the compatible types are not respected. You might have to call `compatibleType` from my cursory look.