/* union declared with fields i and c */ expr : INTEGER { $$ = 3; } | CHAR { $$ = 'a'; } ; other : expr '!' { $$ = foo($1); } ; /* error: "$1 is untyped" */