This provides a lot more flexibility around version support, and unlike the ToSql/FromSql implementations, these don't actually need to be in postgres itself.