content: {-# LANGUAGE DeriveDataTypeable #-}
  {-# LANGUAGE DeriveGeneric #-}
  
  -----------------------------------------------------------------------------
  -- |
  -- Module      :  Distribution.PackageDescription
  -- Copyright   :  Isaac Jones 2003-2005
  -- License     :  BSD3
  --
  -- Maintainer  :  cabal-devel@haskell.org
  -- Portability :  portable
  --
  -- Backwards compatibility reexport of everything you need to know
  -- about @.cabal@ files.
  
  module Distribution.PackageDescription (
          -- * Package descriptions
          PackageDescription(..),
          emptyPackageDescription,
          specVersion,
          descCabalVersion,
          BuildType(..),
          knownBuildTypes,
          allLibraries,
  
          -- ** Renaming (syntactic)
          ModuleRenaming(..),
          defaultRenaming,
  
          -- ** Libraries
          Library(..),
          ModuleReexport(..),
          emptyLibrary,
          withLib,
          hasPublicLib,
          hasLibs,
          explicitLibModules,
          libModulesAutogen,
          libModules,
  
          -- ** Executables
          Executable(..),
          emptyExecutable,
          withExe,
          hasExes,
          exeModules,
          exeModulesAutogen,
  
          -- * Tests
          TestSuite(..),
          TestSuiteInterface(..),
          TestType(..),
          testType,
          knownTestTypes,
          emptyTestSuite,
          hasTests,
          withTest,
          testModules,
          testModulesAutogen,
  
          -- * Benchmarks
          Benchmark(..),
          BenchmarkInterface(..),
          BenchmarkType(..),
          benchmarkType,
          knownBenchmarkTypes,
          emptyBenchmark,
          hasBenchmarks,
          withBenchmark,
          benchmarkModules,
          benchmarkModulesAutogen,
  
          -- * Build information
          BuildInfo(..),
          emptyBuildInfo,
          allBuildInfo,
          allLanguages,
          allExtensions,
          usedExtensions,
          hcOptions,
          hcProfOptions,
          hcSharedOptions,
  
          -- ** Supplementary build information
          ComponentName(..),
          defaultLibName,
          HookedBuildInfo,
          emptyHookedBuildInfo,
          updatePackageDescription,
  
          -- * package configuration
          GenericPackageDescription(..),
          Flag(..), emptyFlag,
          FlagName, mkFlagName, unFlagName,
          FlagAssignment,
          showFlagValue,
          dispFlagAssignment, parseFlagAssignment,
          CondTree(..), ConfVar(..), Condition(..),
          cNot, cAnd, cOr,
  
          -- * Source repositories
          SourceRepo(..),
          RepoKind(..),
          RepoType(..),
          knownRepoTypes,
          emptySourceRepo,
  
          -- * Custom setup build information
          SetupBuildInfo(..),
    ) where
  
  import Prelude ()
  --import Distribution.Compat.Prelude
  
  import Distribution.Types.Library
  import Distribution.Types.TestSuite
  import Distribution.Types.Executable
  import Distribution.Types.Benchmark
  import Distribution.Types.TestType
  import Distribution.Types.TestSuiteInterface
  import Distribution.Types.BenchmarkType
  import Distribution.Types.BenchmarkInterface
  import Distribution.Types.ModuleRenaming
  import Distribution.Types.ModuleReexport
  import Distribution.Types.BuildInfo
  import Distribution.Types.SetupBuildInfo
  import Distribution.Types.BuildType
  import Distribution.Types.GenericPackageDescription
  import Distribution.Types.CondTree
  import Distribution.Types.Condition
  import Distribution.Types.PackageDescription
  import Distribution.Types.ComponentName
  import Distribution.Types.HookedBuildInfo
  import Distribution.Types.SourceRepo
  