type inferences