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

Reply via email to