disjointness of types; (eof-object); exceptions fixed