readCodeAndReply

Reads (consuming it) the next character code from channel (-1 at end of stream) and unifies arg with it, or fails on a closed channel.