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.