Problems:
- completeness and consistency: need to be able to read and write records like other Clojure types
- dynamism: need to create defrecords without class-in-hand. Performantly, of course
- convenience: want map-like construction instead of positional slotwise construction
Open questions:
- modularity friendliness
- print/read syntax
- fn/macro/both?
- both
- need macro for metadata from reader
- one fn, or fn-per-record?
- one fn
- otherwise you get namespace issues and name pollution
- reader form based on
#=?- forces people to allow arbitrary execution in order to deserialize records?
There are a few tickets waiting on design decisions:
Some (non-contributed) code that demonstrates people's need for this:
- cemerick's defrecord slot defaults
- David McNeil's enhanced clojure records
Labels: