This kind of thing is a bit overly magical for my tastes, though I would expect something like it from a csv file where there isn't separate int/float in a type system.