
[;1m  position(IoDevice, Location)[0m

  Sets the position of the file referenced by [;;4mIoDevice[0m to [;;4m[0m
  [;;4mLocation[0m. Returns [;;4m{ok, NewPosition}[0m (as absolute offset) if
  successful, otherwise [;;4m{error, Reason}[0m. [;;4mLocation[0m is one of the
  following:

   • [;;4mOffset[0m - The same as [;;4m{bof, Offset}[0m.

   • [;;4m{bof, Offset}[0m - Absolute offset.

   • [;;4m{cur, Offset}[0m - Offset from the current position.

   • [;;4m{eof, Offset}[0m - Offset from the end of file.

   • [;;4mbof | cur | eof[0m - The same as above with [;;4mOffset[0m 0.

  Notice that offsets are counted in bytes, not in characters. If
  the file is opened using some other [;;4mencoding[0m than [;;4mlatin1[0m, one
  byte does not correspond to one character. Positioning in such a
  file can only be done to known character boundaries. That is, to a
  position earlier retrieved by getting a current position, to the
  beginning/end of the file or to some other position known to be
  on a correct character boundary by some other means (typically
  beyond a byte order mark in the file, which has a known
  byte-size).

  A typical error reason is:

   • [;;4meinval[0m - Either [;;4mLocation[0m is illegal, or it is evaluated
     to a negative offset in the file. Notice that if the
     resulting position is a negative value, the result is an
     error, and after the call the file position is undefined.
