I think the key is to develop clients for both yours and Vincent's design. See what trade-offs you encounter. Write down the pros and cons.
The designs of Clojure, Haskell, and Scala reflect their choices among these properties (presumably) plus the general programming philosophy (including its expressive power) of the language. You might want to compare to those. -- Matthias On Mar 18, 2015, at 7:21 PM, Alexis King <lexi.lam...@gmail.com> wrote: > I’ve recently made an attempt to implement a generic collection library for > Racket using racket/generic. My implementation is a work in progress, but you > can find it here: > > https://github.com/lexi-lambda/racket-alexis-collections > > Documentation is also available if you’re interested in taking a peek at how > it works. > > I’ve been discussing how to best handle this sort of project with Vincent on > IRC. He has his own version of generic collections as well, located here, > which takes a decidedly different approach. I think we’re both interested in > having a discussion about how to best approach this problem, since having > generic collections in the core would be a nice improvement, but that’s a > long-term goal. > > In a more immediate sense, I’ve run into a few issues with the current > generics implementation that I think need to be solved in order to create an > expressive enough system to adequately handle the different data structures > Racket contains. I’ve written up some of the things that have come to my > immediate attention on the wiki page on GitHub. I would appreciate any > comments or feedback. > > In addition to those problems, there are more collections-specific issues > that would be helpful to untangle, such as how to handle operations such as > map and append on heterogenous arguments, as well as the general structure of > the interfaces. I will continue to attempt to create what my ideal > implementation would look like, but, as Vincent has said, I think now is a > good time to try out different approaches and weighing the pros and cons. > > Sam has also suggested taking cues from Clojure, Scala, and Haskell with > regards to their collections APIs, which probably provide good examples of > the pros and cons of existing approaches. I haven’t done any extensive work > in any of those languages, so if anyone is familiar with their strengths and > weaknesses, it would be helpful to hear what you like and don’t like about > them. > > Alexis > > -- > You received this message because you are subscribed to the Google Groups > "Racket Developers" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to racket-dev+unsubscr...@googlegroups.com. > To post to this group, send email to racket-dev@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/racket-dev/AE4CCA7C-6F88-499D-B415-90FA7A184338%40gmail.com. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "Racket Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-dev+unsubscr...@googlegroups.com. To post to this group, send email to racket-dev@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-dev/F549C372-564B-4DFE-B963-E1E24E4EF95D%40ccs.neu.edu. For more options, visit https://groups.google.com/d/optout.