Oh, that is my fault - I was sure that I specified the extension and it didn't help.
It really works with Overlapping&Undecidable.
Thank you!


On Wed, Feb 27, 2013 at 10:36 PM, Aleksey Khudyakov <alexey.skladnoy@gmail.com> wrote:
On 27.02.2013 17:35, Dmitry Kulagin wrote:
Hi Aleksey,

Unfortunately, your solution does not work for me (ghc 7.6.2). I reduced
the problem to:

-- | Type class for type equality.
class  TypeEq (a :: á) (b :: á) (eq :: Bool) | a b -> eq
instance               TypeEq a a True
-- instance TypeEq a b False
instance eq ~ False => TypeEq a b eq

You need to add pragma {-# LANGUAGE OverlappingInstances #-}
to the file where instances defined. Without it GHC will complain
about overlap and unlike other extensions won't recommend pragma