Data type inference and specification