Hi Brandon,
Here's an example use case (from a core.matrix perspective)
1. Support reading/writing types we don't control, e.g. javax.vecmath.GMatrix
2. Ability to round-trip such types to a tagged literal representation
3. Possibility for others to have different representations of the same type (likely needed for composing libraries...)
4. Would be nice to decouple this from print-method
5. If reading in a context where the type isn't available, fallback to a default reading function
Basically I would like to be able to code "read-edn-matrix" and "write-edn-matrix" so that they behave sanely, work for types we don't control and don't cause any conflicts with anything else.
Would your proposed design support this?