
srfi-14:

-----
It says:

,--------------------
| char-set-unfold  f p g seed [base-cs] -> char-set
| char-set-unfold! f p g seed base-cs -> char-set
|     This is a fundamental constructor for char-sets.
| 	+ G is used to generate a series of "seed" values from the
| 	initial seed: seed, (g seed), (g2 seed), (g3 seed), ...
| 
| 	+ P tells us when to stop -- when it returns true when applied
| 	to one of these seed values.
| 
| 	+ F maps each seed value to a character. These characters are
| 	added to the base character set base-cs to form the result;
| 	base-cs defaults to the empty set. char-set-unfold! adds the
| 	characters to base-cs in a linear-update -- it is allowed, but
| 	not required, to side-effect and use base-cs's storage to
| 	construct the result.
`--------------------

G is fine, but P, and F descriptions are exchanged.

-----
It says:

,--------------------
| ;; Parse, type-check & default a final optional BASE-CS parameter from
| ;; a rest argument. Return a *fresh copy* of the underlying string.
| ;; The default is the empty set. The PROC argument is to help us
| ;; generate informative error exceptions.
| (define (%default-base maybe-base proc)
|     (if (pair? maybe-base)
| 	  (let ((bcs (car maybe-base))
| 		(tail (cdr (maybe-base))))
| 			   ^^^^^^^^^^^^
| 			   This should NOT be a list.
| 	    (if (null? tail)
| 		(if (char-set? bcs) (%string-copy (char-set:s bcs))
| 		    (error proc "BASE-CS parameter not a char-set: ~a" bcs))
| 		(error proc "Expected final base char set -- too many parameters: ~a" maybe-base)))
| 	  (make-string 256 (latin-1-integer->char 0))))
`--------------------

It has to be `maybe-base'.

