Hi

Thus I propose that the .cabal file actually specifies what extensions
the modules are /allowed/ to use, but does not actually enable them.
They would then be enabled by LANGUAGE pragmas in the modules as
necessary. So, if the .cabal file says "Extensions: E, F" then the
modules will be compiled with
    --no-extension-flags --allowed-extension=E,F
and if a module has "{-# LANGUAGE E #-}" then only extension E would be
enabled for that module. If a module has "{-# LANGUAGE E,G #-}" then
compilation would fail as extension G is not permitted.

Any comments? Criticisms? Flames?

I like it!

* If you want to load one of the modules in ghci, say, then you need to
  tell it what flags to use.

I think this is the killer reason.

Another reason that you don't mention is that it discourages the use
of extensions, not massively, but slightly. Now if you want to use a
particular extension lots you must specify it in every single file.

Thanks

Neil
_______________________________________________
cabal-devel mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cabal-devel

Reply via email to