Define a position datatype for giving locations in error messages.
Source positions contain a filename, line, column, and an inclusion point, which is itself another source position, recursively.
Constructors of a new position
posInNewCxt name pos creates a new source position from an old one.
It is used when opening a new file (e.g. a DTD inclusion), to denote
the start of the file
name, but retain the stacked information that
it was included from the old
Just used to strictify the internal values of a position, to avoid space leaks.
Add the given whitespace char to the given position.
white c | isSpace c = True