[plt-dev] Re: promoting unstable libraries

From: Eli Barzilay (eli at barzilay.org)
Date: Wed Feb 3 21:33:06 EST 2010

On Feb  3, Ryan Culpepper wrote:
> My proposals:
> -- unstable/list --
> The following should move:
>    - list-prefix?

-5 -- a function that removes the shared prefix is something that I'd
use in several places (actually, I can't think of a case that I needed
to know if l1 is a prefix of l2 without wanting the tail of l2 too).
If such a function is added, then adding a `list-prefix?' function
should be layered on top to maximize profits.

>    - check-duplicate

-5, for the same reason as I originally said -- it is way better if
this is merged with remove-duplicates, so they can both share
functionality like keyword arguments, and implementation advantages.
(For example, `remove-duplicates' decides whether it should use a hash
table or the plain list search, but `check-duplicates' doesn't and
instead forces you to choose and has a bad default.  If there are
cases where specifying your container rather than your equality is
needed, then that should be added to `remove-duplicates' too.)

> The following should move:
>    - define/with-syntax

(?) This looks cute, but is there a situation that you won't be able
to deal with via `with-syntax'?  (Also, that doesn't sound like a good

>    - with-syntax*


>    - format-symbol
>    - format-id

Is there any reason to have `format-symbol'?  Also, I would like the
option of "copy everything" that I wrote in a comment there.  Also_2,
I would *much* rather have `id-append' than this -- I went through my
code and found many places where I used an `id-append'-like tool, and
only once in the past I did the format thing.

>    - syntax-local-eval

+8  This should *really* move out, since it was out in its previous

>    - internal-definition-context-apply

(?)  I don't remember whether you had an example for when this is

> These could all go into scheme/base, since they're all related to
> other procedures already in scheme/base. Or (some/all) could go into
> a new library. Thoughts?

-1.  Except maybe for `with-syntax*'.  Somewhere in `syntax/*' sounds
better, or maybe a new `scheme/syntax'.

          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                    http://barzilay.org/                   Maze is Life!

Posted on the dev mailing list.