In that case the positions might as well be vector indexes. Textual positions can be any Scheme value that makes sense.
The problem is that what port-position returns is *not* what get-position returns. The port can buffer multiple
characters, and the user-supplied get-position can't know how many characters has been read from the
port. It can returns the position where next read! will read from. The port internally offsets the position,
taking into account of what's remaining in its buffer.
Thus what get-position returns must be in sync of what the implementation's port expects.