Type-Check fails with internal error for instance declarations with ambiguous funtion names
Suppose you have
module A where import Prelude hiding (id) class ID a where id :: a -> a
module B where import Prelude import A instance ID Int where id x = x
then the Type-Check will fail with an internal error, instead of reporting the ambiguous identifier.