
Am Freitag, 23. November 2007 03:37 schrieben Sie:
On Fri, 2007-11-23 at 01:50 +0100, Wolfgang Jeltsch wrote:
Dont’t just think in terms of single modules. If I have a Cabal package, I can declare used extensions in the Cabal file. A user can decide not to start building at all if he/she sees that the package uses an extension unsupported by the compiler.
Indeed. In theory Cabal checks all the extensions declared to be used by the package are supported by the selected compiler. In practise I'm not sure how well it does this or what kind of error message we get.
Duncan
The problem is, of course, that you are not forced to specify all used extensions in the Cabal file since you can still use language pragmas. Sometimes it is even desirable to use LANGUAGE pragmas instead of information in the Cabal file. For example, even if some modules use undecidable instances, I might not want all modules of the package to be compiled with -XUndecidableInstances since this could hide problems with my class structure. Best wishes, Wolfgang