The new package organization gives us a chance to re-asses the "unstable" collection.
Going forward, I think the "unstable" collection should be used in the following ways: 1. If you build something that you think is general-purpose, but is only used in one package, put it in `unstable/foo`, but keep it inside that package. 2. If you either (a) want to use some other package's `unstable/foo` library, or (b) create such a library that's used across multiple packages, create a separate package called "unstable-foo" for it. It's perhaps worth saying why we still need "unstable" at all in the new regime. We might just create a new package for, say, parameter groups, and just add that as a dependency of "plot". But that would ship a library in a useful location, and potentially commit us to that library and API for the future. So I think we should keep "unstable" around. With that said, I'd like to also propose moving the following out of "unstable": # `unstable/list` - `remf`, `list-update` `list-set` `map/values`: move to `racket/list` - `group-by`: rename to `group`, add keyword argument `#:by` defaulting to `equal?`, move to `racket/list` - `extend`, `filter/values`: move back into Typed Racket - `list-prefix?`: move back into the web server - `map2`, `check-duplicate`, `*-common-prefix`: Delete # `unstable/parameter-group` This is used by both the "image" and "plot" libraries. Create a new top-level collection and package. # `unstable/latent-contract` Currently undocumented. Used by the image collection anyway. This needs to be fixed. That's it for things outside of the "unstable" package, which I'll tackle another time. Sam _________________________ Racket Developers list: http://lists.racket-lang.org/dev