Simon Peyton Jones wrote: > | >>On a largely unrelated note, here's another thing I don't > | >>understand: when is OVERLAPPABLE at one instance declaration > | >>preferable to using only OVERLAPPING at the instance declarations > | >>that overlap it? > > It's a user decision. GHC allows > - OVERLAPPABLE at the instance that is being overlapped, or > - OVERLAPPING at the instance that is doing the overlapping, or > - both
I'm curious how this affects simplification of contexts. If I have class Foo a instance Foo a => Foo [a] then GHC will simplify foo :: Foo [a] => a -> () to foo :: Foo a => a -> () Would this be prevented by declaring the Foo [a] instance as overlappable? In other words, does OVERLAPPABLE instruct the type checker to expect overlapping instances even if none of them are visible? Cheers, Bertram _______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users