
Duncan Coutts wrote:
On Tue, 2008-02-19 at 12:01 +0100, Henning Thielemann wrote:
On Tue, 19 Feb 2008, Christian Maeder wrote:
In order to avoid several #ifdefs (maybe differently or suboptimal given) in user sources (to achieve 1.) such #ifdefs (or wrappers) should be part of the libraries (including the documentation for the license differences)! Can Cabal-1.2's flag capability manage such a task?
I don't think I understand the problem clearly enough to say. Perhaps someone can try explaining it in more detail.
Currently, we have packages Shellac-readline and Shellac-editline. with exposed-modules: System.Console.Shell.Backend.Readline resp. exposed-modules: System.Console.Shell.Backend.Editline Each module exports a single constant: Prelude> :browse System.Console.Shell.Backend.Editline editlineBackend :: System.Console.Shell.Backend.ShellBackend () Prelude> :browse System.Console.Shell.Backend.Readline readlineBackend :: System.Console.Shell.Backend.ShellBackend () On Macs I want to use Editline, under Linux Readline, Therefore I #ifdef my sources. (The functionality seems to be the same for both packages) My questions are: 1. Should not the exported constants have the same name 2. Should not even the module name be the same in both packages As long as not both packages are installed the compiler would pick the proper package without my #ifdefs. HTH Christian