Hi all,

I hope this is the right list to ask this. Please direct me to the
right place if not.

Anyway, I'm using functionality in the Distribution.* namespace to
parse .cabal files retrieved from Hackage. The problem is that 
after using flattenPackageDescription, the buildDepends of the
PackageDescription structure seems to be a flat list which seems
to lose information that was in the original .cabal file.

For instance, the cabal file for hoogle, contains:

    build-depends: parsec, filepath, safe, uniplate, mtl, time
    if flag(splitBase)
        build-depends: base >= 3, directory, process, containers, array, 
bytestring
    else
        build-depends: base < 3

while the buildDepends list looks like this:

    Dependency (PackageName "base") (EarlierVersion
                      (Version {versionBranch = [3], versionTags = []})),
    Dependency (PackageName "bytestring") AnyVersion,
    Dependency (PackageName "array") AnyVersion,
    Dependency (PackageName "containers") AnyVersion,
    Dependency (PackageName "process") AnyVersion,
    Dependency (PackageName "directory") AnyVersion,
    Dependency (PackageName "base") (UnionVersionRanges
            (ThisVersion (Version {versionBranch = [3], versionTags = []})) 
            (LaterVersion (Version {versionBranch = [3], versionTags = []}))),
    Dependency (PackageName "time") AnyVersion,
    Dependency (PackageName "mtl") AnyVersion,
    Dependency (PackageName "uniplate") AnyVersion,
    Dependency (PackageName "safe") AnyVersion,
    Dependency (PackageName "filepath") AnyVersion,
    Dependency (PackageName "parsec") AnyVersion

Should the conversion from .cabal file to Dependency list be lossy?

I look forward to enlightenment.

Cheers,
Erik
-- 
----------------------------------------------------------------------
Erik de Castro Lopo
http://www.mega-nerd.com/

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

Reply via email to