When discussing custom `read` and `read-syntax` implementations, the Racket 
reference states this in section 1.3.18, Reading via an Extension:

> The arity of the resulting procedure determines whether it accepts extra
> source-location information: a read procedure accepts either one argument
> (an input port) or five, and aread-syntax procedure accepts either two
> arguments (a name value and an input port) or six.

Languages created with syntax/module-reader provide implementations of read and 
read-syntax that accept the extra arguments, as well they should. However, 
custom reader functions passed to the #:read and #:read-syntax options cannot 
accept the extra arguments because syntax/module-reader always only passes 
along one for read or two for read-syntax.

This seems inconvenient to me because I can’t, for example, re-use the R5RS 
reader by supplying read and read-syntax from r5rs/lang/reader to 
syntax/module-reader: there will be an arity mismatch, and reading will fail. 
Is there a reason behind prohibiting languages implemented with 
syntax/module-reader from using these extra arguments? Or could it be enhanced 
to support them?

Alexis

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to