Dear all,

I ran into something I don't quite understand about the treatment of
closed streams.

Take a closed stream handle:

    open(f, write, W), close(W), open(f, read, S), close(S)

then:

    set_input(S)
    stream_property(S, _)

reports existence_error(stream,S) while the ISO standard expects that:

    current_input(S)

reports domain_error(stream, S).

On the implementation side, it feels natural to share stream checking
code, which would lead to a more uniform existence_error(stream,S)
error for the three predicates (like SWI Prolog does).

Am I missing something?

Thanks,

--
Jose