[plt-scheme] symbols redefined in SRFIs

From: Dan Muresan (danmbox at gmail.com)
Date: Mon Oct 23 17:26:00 EDT 2006

> Since SRFI-1 is implemented in Scheme the SRFI-1 replace!
> is slower than the builtin replace!.

replace! is not part of SRFI-1.

But whichever one you meant, surely an extra (if) to check for the
SRFI-1 signature, then dispatch to either Scheme or the native
version, isn't much. Alternatively, the SRFI-1 version could be
implemented natively.

> And it is no trouble to write
>   (require (lib "list.ss" "1" "srfi"))

[... at which point becomes clear to me that I'm again fighting a
losing battle against an entrenched poor deisgn...]

Apart from the cognitive effort coming from yet another special
syntax, yes, no effort -- unless you make a mistake the 1st time (see

> And if the extended reverse! is needed, just use
>   (require (lib "list.ss" "1" "srfi")
>            (prefix srfi: (only (lib "1.ss" "srfi")
>                                reverse!)))
> This might seem like "much trouble", but when you
> get used to the module system, you won't give
> it much thought.

As has been demonstrated by many new users (including me today), this
is a design that invites errors and postings to the plt-scheme mailing
list (with the subsequent replies defending that bad design). You
could even quantify that lost productivity, but I won't get into

-- Dan

Posted on the users mailing list.