Before we codify this into a published API... does it have to be true? There are certainly data types where the user-facing/user-submitted string representation doesn't look the same as the database-facing one, including some where it can be impossible to correctly work out which you've just been handed.