I agree with Tom on all counts except one: accepting symbols instead
of strings is not portable because the symbol 'foo can be represented
internally in two ways: "foo" and "FOO". In any case, extending the
domain of arguments is a slippery slope: if constructing procedures
accept chars, strings and symbols, than why not lists of chars,
lists of strings, vectors of chars etc? This argument also
applies to CHAR/CSET/PREDICATE convention: why
stop there?
Sergei