The scanner returns two kinds of objects: tokens in the input program, or the end-of-file delimiter. The latter is returned as an eof struct:
eof (location)
while all other objects returned by the scanner are a sub-type of scanned:
scanned : zodiac ()
In turn, scanned has one sub-type: token, which is the most specific type of all the objects returned by the scanner.
token : scanned (object type)
The object and type fields will be documented later.