Proposal for stand-alone deriving declarations?

John Meacham john at
Wed Nov 1 18:51:57 EST 2006

On Wed, Nov 01, 2006 at 03:15:38PM -0600, Brian Smith wrote:
> How an instance is defined (explicitly or derived) should have nothing to do
> with how it is imported/exported in a module.
> In particular, I think having features like :
>     import M1 hiding (instance C T)
> and
>    module M hiding (instance C T)
> would eliminate the need for special-case handling of derived instances (if
> two imported modules happen to derive the same instances, you can just hide
> the instances from one of them). Instance hiding is an important feature in
> its own right.

selective importing and exporting of instances is a really tricky
technical issue for a lot of reasons, and a bad idea for many others.
For a quick example, imagine a Set created with some operations using
one Ord instance and other operations using another. the globalness of
instance declarations is a great tool.

Fortunately, newtype deriving (hopefully extended as I have mentioned on
this thread) and rank-n polymorphism make it pretty much unneeded.


John Meacham - ⑆⑆john⑈

More information about the Haskell-prime mailing list