hasConfigs :: GenericPackageDescription -> Bool
hasConfigs gpd =
    let libConds = case condLibrary gpd of
                        Nothing -> False
                        Just condTree -> not (null (condTreeComponents condTree))
        exeConds = foldr (\ (_,condTree) hasConfigs ->
                                if hasConfigs
                                    then True
                                    else not (null (condTreeComponents condTree)))
                        False (condExecutables gpd)
        testConds = foldr (\ (_,condTree) hasConfigs ->
                                if hasConfigs
                                    then True
                                    else not (null (condTreeComponents condTree)))
                        False (condTestSuites gpd)
    in libConds || exeConds || testConds
hasConfigs :: GenericPackageDescription -> Bool
hasConfigs gpd =
    let libConds = case condLibrary gpd of
                        Nothing -> False
                        Just condTree -> not (null (condTreeComponents condTree))
        exeConds = foldr (\ (_,condTree) hasConfigs ->
                                if hasConfigs
                                    then True
                                    else not (null (condTreeComponents condTree)))
                        False (condExecutables gpd)
        testConds = foldr (\ (_,condTree) hasConfigs ->
                                if hasConfigs
                                    then True
                                    else not (null (condTreeComponents condTree)))
                        False (condTestSuites gpd)
    in libConds || exeConds || testConds
hasConfigs gpd =
    let libConds = case condLibrary gpd of
                        Nothing -> False
                        Just condTree -> not (null (condTreeComponents condTree))
        exeConds = foldr (\ (_,condTree) hasConfigs ->
                                if hasConfigs
                                    then True
                                    else not (null (condTreeComponents condTree)))
                        False (condExecutables gpd)
        testConds = foldr (\ (_,condTree) hasConfigs ->
                                if hasConfigs
                                    then True
                                    else not (null (condTreeComponents condTree)))
                        False (condTestSuites gpd)
    in libConds || exeConds || testConds