[R6RS] Core/library strawman take 2

Michael Sperber sperber at informatik.uni-tuebingen.de
Tue Apr 11 12:05:07 EDT 2006


Thanks for strawman---that's a good start, and an excellent basis for
discussion.

Here are some of my observations and suggestions:

- The arithmetic needs some more partitioning:

  arithmetic-fixnum
  arithmetic-fx
  arithmetic-flo
  arithmetic-exact
  arithmetic-inexact
  arithmetic-generic
  
  ... and, possibly,

  arithmetic-external, containing string<->number

- I/O should probably have a separate i/o-data library, containing
  eof-object, and the basic condition-type hierarchy.  Possibly, there
  should be port-datum-i/o, to allow programs to do simple I/O without
  linking in read[-datum], and write[-datum].

- I think the big all-inclusive "records" library is of very limited
  usefulness.  Most programs will only want one of the syntactic
  layers, possibly adding reflection.

- The "bytes" type should be in a separate library.

- I don't see why `multiple-values' isn't a part of core---it needs to
  be part of the core semantics, and `call-with-current-continuation'
  already brings in multiple values.

- Exceptions and conditions should also be in one or two separate
  libraries.  (I'd prefer two.)

- `delay' and `force' as a separate library are fine by me.

- I'd like r6rs-small to have explicit records, no I/O, and no
  syntax-case.  Possibly, there should be "error" and "violation"
  convenience procedures to raise exceptions.  (Syntax-case is already
  pretty heavy; I/O is not needed in many programs; records are.)

- r6rs shouldn't have fixnum, flonum, or primitive-i/o.  All are of
  use only to a limited number of programs It should have
  arithmetic-generic, and syntax-case.

- I personally see little use for r6rs-big.

- R5RS compatibility should be considered for specific libraries,
  i.e. I/O, but not as a whole---that would be hard to do for a number
  of reasons, starting with lexical syntax.

-- 
Cheers =8-} Mike
Friede, Völkerverständigung und überhaupt blabla



More information about the R6RS mailing list