change inferType to do deep resolving after inference
organize tests by expected inference outcome