
On Sat, 2007-08-04 at 14:26 +0100, ross@soi.city.ac.uk wrote:
Quoting Ian Lynagh
: Wed Aug 1 15:38:31 PDT 2007 Ian Lynagh
* Remove the rest of base to leave a "containers" package There may be a case for treating the constructor classes (in Data.Foldable and Data.Traversable) differently from the concrete container types (Data.Set et al). For example, to accomodate the instances for Array in the current setup, one of array and containers must depend on the other, although they are not otherwise related.
I'd certainly argue for this too, the classes should be lower down the package tree than the instances, otherwise it discourages people from making their data types instances of these useful classes. Same argument applies to deriving generics support; that now requires depending on the generic package, even if it's no functions from it are used. Duncan