> edn supports extensibility through a simple mechanism. # followed immediately by a symbol starting with an alphabetic character indicates that that symbol is a tag
OK, so it's trivial to add that as a constructor to the Haskell EDN type in the post, and you can even support it in JSON with a dictionary like
#myapp/Person {:first "Fred" :last "Mertz"}
is represented as
{"#myapp/Person" : { "first" : "Fred", "last" : "Mertz" } }
What are the remaining objections?