Thanks for the patch (though it needs a few more
'#if EXPLAIN_INSTANCE_RESOLUTION's).
It gets me a little further, up to

> class Foo a where foo :: a

> class Foo a => FooBar a where bar :: a

> class FD b c | b -> c where fun :: b -> c

> instance (Foo a, FD b c) => Foo (Either a b) where
>         foo = undefined

> data B = B
> data C = C
> instance FD B C where fun = undefined

> instance FooBar a => FooBar (Either a B) where
>         bar = undefined

when it can't build the instance Foo (Either a B).

Somehow the information in that dependency isn't being fully used.

Ross

Reply via email to