overlapping instances and constraints

Ben Rudiak-Gould Benjamin.Rudiak-Gould at cl.cam.ac.uk
Wed Mar 1 10:23:00 EST 2006

Niklas Broberg wrote:
> Ben Rudiak-Gould wrote:
>> Are there uses of overlapping
>> instances for which this isn't flexible enough?
> Certainly!

Hmm... well, what about at least permitting intra-module overlap in Haskell' 
(and in GHC without -foverlapping-instances)? It's good enough for many 
things, and it's relatively well-behaved.

> instance (Show a) => IsXML a where
>  toXML = toXML . show
> The intention of the latter is to be a default instance unless another
> instance is specified.

I can see how this is useful, but I'm surprised that it's robust. None of 
the extensions people have suggested to avoid overlap would help here, clearly.

Are there uses of overlapping instances for which the single-module 
restriction isn't flexible enough, but extensions that avoid overlap are 
flexible enough?

-- Ben

More information about the Haskell-prime mailing list