On Nov 12, 7:10 am, Rich Hickey <richhic...@gmail.com> wrote: > [1]http://www.assembla.com/wiki/show/clojure/Datatypes
Could you please elaborate on why you chose to make IPersistentMap an optional interface for deftype'd types, rather than making it automatic? I'm asking because I found the automatic defstruct-map equivalence convenient in writing the Cupboard database library (http://github.com/ gcv/cupboard). It guaranteed that any reading Clojure code could read back any map or any struct written by any other Clojure program (unless the map contains closures, of course), without any other knowledge of the writing program. It allows for data-centric designs when thinking about storing objects to a database, i.e., the data can be used without the type definitions which originally produced it. I can, of course, require that any deftype'd types saved in Cupboard databases implement IPersistentMap, but I'm curious about the reasoning for not making maps part of the default nature of deftype. Making IPersistentMap the default could also make deftype a nearly drop-in replacement for defstruct. Thanks, Constantine Vetoshev -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en