Errors inside of the testdrive library are represented as an
anyhow::Error. As the error bubbles up the stack, it may be upgraded to a
PosError, which attaches source code position information. The position
information tracked by a
PosError uses a parser-specific representation
that is not human-readable, so
PosErrors are upgraded to
they are returned externally.