Hi, Oberon NetSystem is visible here. https://gitlab.inf.ethz.ch/felixf/oberon/-/blob/main/source/Unix.Oberon.NetS... Eight constants are declared for the return values of State. According to the response from TCP, State can return four of those values. State is unable to return in, out, waitCon and errorCon. I wonder about use of the return values not included in State. NetTools.Connected is a pertinent example. (** Check if connection C is still open for incoming (mode = NetSystem.in) or outgoing (mode = NetSystem.out) data. *) PROCEDURE Connected*(C: NetSystem.Connection; mode: SIGNED16): BOOLEAN; VAR state: SIGNED16; BEGIN state := NetSystem.State(C); RETURN state IN {mode, NetSystem.inout} END Connected; The local state will never be assigned NetSystem.in or NetSystem.out. Therefore "RETURN state IN {mode, NetSystem.inout}" simplifies to "RETURN state = NetSystem.inout". Correct? Did the author of NetSystem include in, out, waitCon and errorCon to allow for a future generalization? Other ideas? Thanks, ... P.L. - VoIP: +1 604 670 0140 work: https://en.wikibooks.org/wiki/User:PeterEasthope