minor error in srfi-152.sld William D Clinger 27 Jul 2017 22:07 UTC

The second cond-expand of srfi-152.sld contains an error that's
hidden by mis-indentation.  Properly indented, it's easier to see
the "(else (begin))" is in an illegal context, and there is no
else clause in the cond-expand:

  (cond-expand
    ((library (rnrs bytevectors))
     (export string-normalize-nfc string-normalize-nfkc
             string-normalize-nfd string-normalize-nfkd)
     (import (only (rnrs unicode)
                   string-normalize-nfc string-normalize-nfkc
                   string-normalize-nfd string-normalize-nfkd))
     (else (begin))))

That file would be more portable if:

    the name of the library were (srfi 152), not (srfi-152).

    it exported the 32 procedures that are also exported by
    (scheme base).  Why shouldn't a program that imports
    (rnrs base) instead of (scheme base) be allowed to use this
    library without having to import (scheme base) and resolve
    any extraneous conflicts that might result?

The string-span and string-break procedures are not specified by
SRFI 13, but their descriptions in the SRFI document do not note
that fact.

I do not expect to examine the sample implementation any further
because SRFI 152 should be easy to implement on top of (srfi 13),
(scheme text), and the R6RS libraries.

Will