The scanner returns two kinds of objects: tokens in the input program, or the end-of-file delimiter. The latter is returned as an zodiac:eof struct:
eof (location)
while all other objects returned by the scanner are a sub-type of zodiac:scanned:
scanned : zodiac ()
In turn, zodiac:scanned has one sub-type: zodiac: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.