If an object is successfully parsed, the primary value, object,
is the object that was parsed.
If eof-error-p is false and if the end of the substring is reached,
eof-value is returned.

The secondary value, position, is the index of the first character
in the boundedstring that was not read.
The position may depend upon the value of preserve-whitespace.
If the entire string was read,
the position returned is either the length of the string
or one greater than the length of the string.

If the end of the supplied substring
occurs before an object can be read, an
error is signaled if eof-error-p is true.
An error is signaled if the end of the substring occurs
in the middle of an incomplete object.

The reason that position is allowed to be beyond the
length of the string is to permit (but not require)
the implementation to work by simulating the effect of a
trailing delimiter at the end of the boundedstring.
When preserve-whitespace is true,
the position might count the simulated delimiter.