I generally like the various def* macros from clojure.contrib.def. I was wondering though if it would make sense unify the syntax of all the def* macros from both clojure.contrib.def and clojure.core, especially with respect to doc strings and attr-maps.
For example in clojure.core we have defn with the arglist: (defn name doc-string? attr-map? [params*] body) This seems like it should be the prototype on which other def* forms are based, in particular the basic pattern of name, then doc-string? then attr-map?, then some forms that define the associated value. Currently for defstruct we have: (defstruct name & keys) Would this make sense?: (defstruct doc-string? attr-map? name & keys) Then in clojure.contrib.def for defvar we have: (defvar name init doc) Which puts the doc string after the value forms instead of before them. I would have expected: (defvar doc-string? attr-map? name init) I think we could implement e.g. the defstruct change without breaking any existing code, but changes like those to defvar would be breaking. What do others think of this basic approach to def* forms and the possibility of making changes to unify them in core and contrib.def? I'd be happy to send some patches; I just wanted to feel out what others thought about the issue first. - Mark --~--~---------~--~----~------------~-------~--~----~ 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 To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~----------~----~----~----~------~----~------~--~---