rustc can infer this type