(Imported from Trac #370, reported by guest on 2008-10-13)
We'd like to make it possible to ensure all code on hackage lists precisely the -X extensions it uses.
This kind of thing
-XEmptyDataDecls -XTypeSynonymInstances -XMultiParamTypeClasses -XFlexibleInstances -XRank2Types -XScopedTypeVariables -XDeriveDataTypeable
Now, these should be listed in both the .cabal file, and in individual modules that require the extensions. We can check this by loading the modules in ghci.
The end result: we'd be able to filter on extensions. Researchers would be able to see precisely which extensions are used, and in what packages.
A simple 'is this type correct' script:
echo "Checking type correctness ... "
for i in *.hs ; do
ghci -cpp -Iinclude -v0 $i < /dev/null
done > $f 2>&1
if cmp -s $f /dev/null ; then
(Imported comment by @dcoutts on 2008-10-13)
Closely related to this is the problem that the extensions field does not quite mean what we want. It currently means to apply those excetions to all the modules in the package, but what we want it to mean is that this package uses these extensions (and not all modules need use all the extensions).
I fear we need a different name for this meaning or we'll break lots of existing packages. We can gradually move to the new system.
uses-extensions: Foo, Bar
The next question would be how to enforce that the declaration is accurate. We could parse the OPTIONS and LANGUAGE pragmas to extract the languages used.
Note also that we should be encouraging the use of the portable LANGUAGE pragma, not ghc's -X flags.
Closing as there's been no activity in years.
We're cleaning up the bug tracker to make it useful again and are thus closing bugs that haven't seen any activity in a long time. Please re-open (or file a new bug) if the problem reappears.