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 -- John Meacham - ⑆repetae.net⑆john⑈ _______________________________________________ Haskell-prime mailing list Haskell-prime@haskell.org http://www.haskell.org/mailman/listinfo/haskell-prime