takusen -> cabal - some thoughts again

Marc Weber marco-oweber at gmx.de
Tue Mar 11 04:43:47 EDT 2008

dcoutts has told me that there was a choice:
Duplicating the record (one for assembling options the way it's now (A)) and
one for usage (B). Seems like beeing duplication but.. many 
(fromFlag configVerbose) in all Setup.lhs files is duplication as well.

(A) now :
    ConfigureFlags = {
     ...; configVerbose :: Flag Verbosity
                           ^^^ <- difference (for the user writing Setup.hs)
    fromFlag . configVerbose $ flags

(B) the way it was (seen by the Setup.hs writer) and the other way:
    ConfigureFlagsGetOpt = {
     ...; configVerbose :: Flag Verbosity

    -- no longer any non configured values.. defaults must have been
        filled in there and you see can see it
    ReadConfigureFlags = {
     ...; configVerbose :: Verbosity
                           ^^^^ <- difference (for the user writing Setup.hs )
    configVerbose $ flags

Because Cabal is a tool designed to make package writing more easy for
the mass maybe the right way to go in the future is a design beeing
closer to (B) ? Why? Because you can just open Setup.hs and jump to the
definition and you see what you have to see no longer wondering about
default values and how things are used internally within Cabal.
(I mean wether and when defaultConfigFlags is actually used so it's safe
to use .. you know this already from my privious post :)

I don't want to break things.. I only want tell you about my thoughts.

Marc Weber

More information about the cabal-devel mailing list