Formal Comment
Submitter's name: Marc Feeley Submitter's email: feeley at iro.umontreal.ca Relevant draft: r7rs draft 6
Type: defect Priority: major Relevant section of draft: 6.13.1. Ports
Summary: Bidirectional ports and port-open?
R7RS states that an implementation of Scheme may have bidirectional ports (because the input and output port types may not be disjoint). Bidirectional ports may be useful to represent operating devices such as serial ports, terminals, and network connections. On some of these ports it is useful to close the input and output sides separately (for example closing the output side of a network connection on which a request was sent, while leaving the input side open to receive the response).
For this reason, the procedure port-open? is not very informative for bidirectional ports. It would be better to separate this into two procedures so that each direction can be tested independently:
(input-port-open? port) (output-port-open? port)