On Wed, 2009-12-02 at 23:03 +0100, Joachim Breitner wrote: > Would it be techically possible and feasible to write instance that do > not actually cause a dependency on the package that defines the class > resp. the data type? From a distributor point of view, I could live > quite well with a setup like this: > * When the package providing class Foo is compiled, instances for all > interesting data types in the distribution are defined. This means a lot > of build-dependencies, but they are not too bad (although annoying). > * The generated package does (somehow) not depend on all these data > packages. Of course, any part of the code that uses these data types, > especially the class instances, are only usable when the corresponding > package is also installed. I guess this would need compiler support, to > not choke on code that uses unknown data types. > * Packages needing an instance Foo Bar would just depend on the packges > providing foo and bar, and the instance will be available and > functional. > > This idea works symmetric: The instances could also be defined in the > data type package, with no hard dependency on the package providing the > class definition.
Aye, I've thought about a model like this before. I think it's worth considering and working out if it'd be technically feasible. Duncan _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
