Unfortunately, there is no way to prevent code from passing an untyped
constant to f. An untyped constant may take on any type, including
the type Ty1. Variables which do not have type Ty1 will not work, but
constants will.
This handling of untyped constants is normally a feature, but this is
a case where it is undesirable.
Ian