On 13-Apr-06, at 1:54 PM, Ben Goetter wrote:
If you separate byte ports from character ports, and separate input ports from output ports (at least at the API level), you get an easily type-checked interface. e.g.open-input-file string [encoding keywords] -> input-character-port read-char input-char-port -> character open-input-file-raw string -> input-byte-port read-byte input-byte-port -> integer
After rereading this part of your message I think I may have misunderstood you. Do you mean that the procedure's signatures should explicit the type of port to indicate the type constraints? That sounds like a good idea. I was just following the RnRS tradition that uses:
procedure: (read-char port) procedure: (write-char char port)I.e. it does not distinguish input and output ports in the procedure signatures.
Marc