The problem really is with the nature of typing in computer languages, which has been reinvented as an extension of set theory to retroconvert a series of business cases in running payrolls and firing missiles.
So your quoting is appropriate to the need to return an utterance, quoted.
It would require (and welcome) further coercions for Booleans, Dates and Times, which are numbers that aren't numbers proper, but numbers in a socially agreed context.
This has to do with the semiotics of programming languages: they masquerade as science but they are properly speaking a form of speech. I think it was Naur who said programming languages exist for three purposes: to describe a solution to a problem, to communicate that solution to a fellow worker for checking, and only then for the steps to be carried out by a computer.
Your code highlights the problems in algol-inspired representations of reality, that anything that isn't agreed isn't representable. So fractions, complexes, numbers with precision, vectors with units, values with errors, multiple solutions to square root calculations all get to be unrepresented, and to question this is to be impractical and (oddly enough) not living in the "real world".
Algol the star was named for a Gorgon, a creature capable of turning the world into a lifeless stone. Perhaps this outcome with numbers and types was what we might have expected.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.