On Tuesday 04 April 2006 18:46, you wrote: > Benjamin Franksen wrote: > > However, it would help programmers a lot, specialy library users. > > And it would lift some of the burden that is currently on the > > library writer to never forget to derive all possibly useful > > instances for public data types. > > If you allow 'deriving' in other modules it can violate the 'privacy' > of modules. For example (if these instances were not declared): > deriving Data.Map.Map (Show) > > Now I can look at what map nodes look like. > > > deriving Data.Map.Map (Data) > > Now I can even mess with the internal structure, violating > invariants.
Ouch! This would be bad. Hmm... not all exported data types are abstract. I guess we could allow it for data types with no hidden constructors, but then maybe it is not quite as useful as I thought... Ben _______________________________________________ Haskell-prime mailing list [email protected] http://haskell.org/mailman/listinfo/haskell-prime
