This has a couple of changes around the polymorphism used in Puget:
TaggedValue protocol renamed to ExtendedNotation.
GenericTaggedValue record shortened to TaggedValue.
canonize dispatches on type rather than class if the value does not use extended notation.
This last means you can provide arbitrary print rendering for types which don't use a tagged-value representation in EDN. I originally tried making the ->edn conversion function a multimethod instead, but it didn't really work out cleanly.
Coverage remained the same when pulling 878ca11098728a1ac3ff5cf391bc2f9b77ef0f9e on refactor-multimethods into 4f9c88773b162f5015d3b8df34b5e87eabb645da on develop.
Coverage remained the same when pulling c6f277f1464887e31ef285cc3bf058e7e7292919 on refactor-multimethods into 4f9c88773b162f5015d3b8df34b5e87eabb645da on develop.
Coverage remained the same when pulling be5bfef2814d1930cb02311cf9a30409c2719ac6 on refactor-multimethods into d20e034a7b9f5c9199880fa269136ba2dfc0cc2c on develop.
cc @gfredericks fixes #13
This has a couple of changes around the polymorphism used in Puget:
TaggedValue
protocol renamed toExtendedNotation
.GenericTaggedValue
record shortened toTaggedValue
.canonize
dispatches ontype
rather thanclass
if the value does not use extended notation.This last means you can provide arbitrary print rendering for types which don't use a tagged-value representation in EDN. I originally tried making the
->edn
conversion function a multimethod instead, but it didn't really work out cleanly.