From CommonJS Spec Wiki
Streams returned by .open are defined by IO/B/Stream/Level1 with the following additional requirements:
- In binary mode .tell MUST return the location in bytes, not an OpaqueCookie.
- Programs using streams opened by .open in text mode MUST expect .tell to return an OpaqueCookie rather than a position in characters.
- Actual implementations may use whichever works best for their implementation
- This requirement is made so that
- autoflush "wf" support for .open so that every .write will .flush right after