std::f32::MAX_VALUE, std::f32::MIN_VALUE, and std::f32::EPSILON are all actually f64s, not f32s as expected. FLT_MAX and FLT_MIN in C are all floats, not doubles, for example. If this is intentional, it's very confusing to me why any constants in the std::f32 module should be f64s, and probably should be explained in the documentation.