    module Distribution.Types.BuildInfo.Lens
      ( BuildInfo
      , HasBuildInfo (..)
      , HasBuildInfos (..)
      ) where

    import Distribution.Compat.Lens
    import Distribution.Compat.Prelude
    import Prelude ()

    import Distribution.Compiler (PerCompilerFlavor)
    import Distribution.ModuleName (ModuleName)
    import Distribution.Types.BuildInfo (BuildInfo)
    import Distribution.Types.Dependency (Dependency)
    import Distribution.Types.ExeDependency (ExeDependency)
    import Distribution.Types.LegacyExeDependency (LegacyExeDependency)
    import Distribution.Types.Mixin (Mixin)
    import Distribution.Types.PkgconfigDependency (PkgconfigDependency)
    import Distribution.Utils.Path
    import Language.Haskell.Extension (Extension, Language)

    import qualified Distribution.Types.BuildInfo as T

    -- | Classy lenses for 'BuildInfo'.
    class HasBuildInfo a where
      buildInfo :: Lens' a BuildInfo

      buildable :: Lens' a Bool
      buildable = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> ((Bool -> f Bool) -> BuildInfo -> f BuildInfo)
    -> (Bool -> f Bool)
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . (Bool -> f Bool) -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a Bool
    Lens' BuildInfo Bool
    buildable
      {-# INLINE buildable #-}

      buildTools :: Lens' a [LegacyExeDependency]
      buildTools = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> (([LegacyExeDependency] -> f [LegacyExeDependency])
        -> BuildInfo -> f BuildInfo)
    -> ([LegacyExeDependency] -> f [LegacyExeDependency])
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . ([LegacyExeDependency] -> f [LegacyExeDependency])
    -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a [LegacyExeDependency]
    Lens' BuildInfo [LegacyExeDependency]
    buildTools
      {-# INLINE buildTools #-}

      buildToolDepends :: Lens' a [ExeDependency]
      buildToolDepends = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> (([ExeDependency] -> f [ExeDependency])
        -> BuildInfo -> f BuildInfo)
    -> ([ExeDependency] -> f [ExeDependency])
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . ([ExeDependency] -> f [ExeDependency]) -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a [ExeDependency]
    Lens' BuildInfo [ExeDependency]
    buildToolDepends
      {-# INLINE buildToolDepends #-}

      cppOptions :: Lens' a [String]
      cppOptions = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> (([String] -> f [String]) -> BuildInfo -> f BuildInfo)
    -> ([String] -> f [String])
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . ([String] -> f [String]) -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a [String]
    Lens' BuildInfo [String]
    cppOptions
      {-# INLINE cppOptions #-}

      asmOptions :: Lens' a [String]
      asmOptions = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> (([String] -> f [String]) -> BuildInfo -> f BuildInfo)
    -> ([String] -> f [String])
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . ([String] -> f [String]) -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a [String]
    Lens' BuildInfo [String]
    asmOptions
      {-# INLINE asmOptions #-}

      cmmOptions :: Lens' a [String]
      cmmOptions = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> (([String] -> f [String]) -> BuildInfo -> f BuildInfo)
    -> ([String] -> f [String])
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . ([String] -> f [String]) -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a [String]
    Lens' BuildInfo [String]
    cmmOptions
      {-# INLINE cmmOptions #-}

      ccOptions :: Lens' a [String]
      ccOptions = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> (([String] -> f [String]) -> BuildInfo -> f BuildInfo)
    -> ([String] -> f [String])
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . ([String] -> f [String]) -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a [String]
    Lens' BuildInfo [String]
    ccOptions
      {-# INLINE ccOptions #-}

      cxxOptions :: Lens' a [String]
      cxxOptions = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> (([String] -> f [String]) -> BuildInfo -> f BuildInfo)
    -> ([String] -> f [String])
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . ([String] -> f [String]) -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a [String]
    Lens' BuildInfo [String]
    cxxOptions
      {-# INLINE cxxOptions #-}

      ldOptions :: Lens' a [String]
      ldOptions = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> (([String] -> f [String]) -> BuildInfo -> f BuildInfo)
    -> ([String] -> f [String])
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . ([String] -> f [String]) -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a [String]
    Lens' BuildInfo [String]
    ldOptions
      {-# INLINE ldOptions #-}

      hsc2hsOptions :: Lens' a [String]
      hsc2hsOptions = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> (([String] -> f [String]) -> BuildInfo -> f BuildInfo)
    -> ([String] -> f [String])
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . ([String] -> f [String]) -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a [String]
    Lens' BuildInfo [String]
    hsc2hsOptions
      {-# INLINE hsc2hsOptions #-}

      pkgconfigDepends :: Lens' a [PkgconfigDependency]
      pkgconfigDepends = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> (([PkgconfigDependency] -> f [PkgconfigDependency])
        -> BuildInfo -> f BuildInfo)
    -> ([PkgconfigDependency] -> f [PkgconfigDependency])
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . ([PkgconfigDependency] -> f [PkgconfigDependency])
    -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a [PkgconfigDependency]
    Lens' BuildInfo [PkgconfigDependency]
    pkgconfigDepends
      {-# INLINE pkgconfigDepends #-}

      frameworks :: Lens' a [String]
      frameworks = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> (([String] -> f [String]) -> BuildInfo -> f BuildInfo)
    -> ([String] -> f [String])
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . ([String] -> f [String]) -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a [String]
    Lens' BuildInfo [String]
    frameworks
      {-# INLINE frameworks #-}

      extraFrameworkDirs :: Lens' a [String]
      extraFrameworkDirs = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> (([String] -> f [String]) -> BuildInfo -> f BuildInfo)
    -> ([String] -> f [String])
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . ([String] -> f [String]) -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a [String]
    Lens' BuildInfo [String]
    extraFrameworkDirs
      {-# INLINE extraFrameworkDirs #-}

      asmSources :: Lens' a [FilePath]
      asmSources = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> (([String] -> f [String]) -> BuildInfo -> f BuildInfo)
    -> ([String] -> f [String])
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . ([String] -> f [String]) -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a [String]
    Lens' BuildInfo [String]
    asmSources
      {-# INLINE asmSources #-}

      cmmSources :: Lens' a [FilePath]
      cmmSources = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> (([String] -> f [String]) -> BuildInfo -> f BuildInfo)
    -> ([String] -> f [String])
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . ([String] -> f [String]) -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a [String]
    Lens' BuildInfo [String]
    cmmSources
      {-# INLINE cmmSources #-}

      cSources :: Lens' a [FilePath]
      cSources = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> (([String] -> f [String]) -> BuildInfo -> f BuildInfo)
    -> ([String] -> f [String])
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . ([String] -> f [String]) -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a [String]
    Lens' BuildInfo [String]
    cSources
      {-# INLINE cSources #-}

      cxxSources :: Lens' a [FilePath]
      cxxSources = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> (([String] -> f [String]) -> BuildInfo -> f BuildInfo)
    -> ([String] -> f [String])
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . ([String] -> f [String]) -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a [String]
    Lens' BuildInfo [String]
    cxxSources
      {-# INLINE cxxSources #-}

      jsSources :: Lens' a [FilePath]
      jsSources = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> (([String] -> f [String]) -> BuildInfo -> f BuildInfo)
    -> ([String] -> f [String])
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . ([String] -> f [String]) -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a [String]
    Lens' BuildInfo [String]
    jsSources
      {-# INLINE jsSources #-}

      hsSourceDirs :: Lens' a [SymbolicPath PackageDir SourceDir]
      hsSourceDirs = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> (([SymbolicPath PackageDir SourceDir]
         -> f [SymbolicPath PackageDir SourceDir])
        -> BuildInfo -> f BuildInfo)
    -> ([SymbolicPath PackageDir SourceDir]
        -> f [SymbolicPath PackageDir SourceDir])
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . ([SymbolicPath PackageDir SourceDir]
     -> f [SymbolicPath PackageDir SourceDir])
    -> BuildInfo -> f BuildInfo
    forall a.
    HasBuildInfo a =>
    Lens' a [SymbolicPath PackageDir SourceDir]
    Lens' BuildInfo [SymbolicPath PackageDir SourceDir]
    hsSourceDirs
      {-# INLINE hsSourceDirs #-}

      otherModules :: Lens' a [ModuleName]
      otherModules = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> (([ModuleName] -> f [ModuleName]) -> BuildInfo -> f BuildInfo)
    -> ([ModuleName] -> f [ModuleName])
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . ([ModuleName] -> f [ModuleName]) -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a [ModuleName]
    Lens' BuildInfo [ModuleName]
    otherModules
      {-# INLINE otherModules #-}

      virtualModules :: Lens' a [ModuleName]
      virtualModules = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> (([ModuleName] -> f [ModuleName]) -> BuildInfo -> f BuildInfo)
    -> ([ModuleName] -> f [ModuleName])
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . ([ModuleName] -> f [ModuleName]) -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a [ModuleName]
    Lens' BuildInfo [ModuleName]
    virtualModules
      {-# INLINE virtualModules #-}

      autogenModules :: Lens' a [ModuleName]
      autogenModules = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> (([ModuleName] -> f [ModuleName]) -> BuildInfo -> f BuildInfo)
    -> ([ModuleName] -> f [ModuleName])
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . ([ModuleName] -> f [ModuleName]) -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a [ModuleName]
    Lens' BuildInfo [ModuleName]
    autogenModules
      {-# INLINE autogenModules #-}

      defaultLanguage :: Lens' a (Maybe Language)
      defaultLanguage = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> ((Maybe Language -> f (Maybe Language))
        -> BuildInfo -> f BuildInfo)
    -> (Maybe Language -> f (Maybe Language))
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . (Maybe Language -> f (Maybe Language)) -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a (Maybe Language)
    Lens' BuildInfo (Maybe Language)
    defaultLanguage
      {-# INLINE defaultLanguage #-}

      otherLanguages :: Lens' a [Language]
      otherLanguages = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> (([Language] -> f [Language]) -> BuildInfo -> f BuildInfo)
    -> ([Language] -> f [Language])
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . ([Language] -> f [Language]) -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a [Language]
    Lens' BuildInfo [Language]
    otherLanguages
      {-# INLINE otherLanguages #-}

      defaultExtensions :: Lens' a [Extension]
      defaultExtensions = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> (([Extension] -> f [Extension]) -> BuildInfo -> f BuildInfo)
    -> ([Extension] -> f [Extension])
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . ([Extension] -> f [Extension]) -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a [Extension]
    Lens' BuildInfo [Extension]
    defaultExtensions
      {-# INLINE defaultExtensions #-}

      otherExtensions :: Lens' a [Extension]
      otherExtensions = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> (([Extension] -> f [Extension]) -> BuildInfo -> f BuildInfo)
    -> ([Extension] -> f [Extension])
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . ([Extension] -> f [Extension]) -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a [Extension]
    Lens' BuildInfo [Extension]
    otherExtensions
      {-# INLINE otherExtensions #-}

      oldExtensions :: Lens' a [Extension]
      oldExtensions = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> (([Extension] -> f [Extension]) -> BuildInfo -> f BuildInfo)
    -> ([Extension] -> f [Extension])
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . ([Extension] -> f [Extension]) -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a [Extension]
    Lens' BuildInfo [Extension]
    oldExtensions
      {-# INLINE oldExtensions #-}

      extraLibs :: Lens' a [String]
      extraLibs = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> (([String] -> f [String]) -> BuildInfo -> f BuildInfo)
    -> ([String] -> f [String])
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . ([String] -> f [String]) -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a [String]
    Lens' BuildInfo [String]
    extraLibs
      {-# INLINE extraLibs #-}

      extraLibsStatic :: Lens' a [String]
      extraLibsStatic = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> (([String] -> f [String]) -> BuildInfo -> f BuildInfo)
    -> ([String] -> f [String])
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . ([String] -> f [String]) -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a [String]
    Lens' BuildInfo [String]
    extraLibsStatic
      {-# INLINE extraLibsStatic #-}

      extraGHCiLibs :: Lens' a [String]
      extraGHCiLibs = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> (([String] -> f [String]) -> BuildInfo -> f BuildInfo)
    -> ([String] -> f [String])
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . ([String] -> f [String]) -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a [String]
    Lens' BuildInfo [String]
    extraGHCiLibs
      {-# INLINE extraGHCiLibs #-}

      extraBundledLibs :: Lens' a [String]
      extraBundledLibs = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> (([String] -> f [String]) -> BuildInfo -> f BuildInfo)
    -> ([String] -> f [String])
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . ([String] -> f [String]) -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a [String]
    Lens' BuildInfo [String]
    extraBundledLibs
      {-# INLINE extraBundledLibs #-}

      extraLibFlavours :: Lens' a [String]
      extraLibFlavours = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> (([String] -> f [String]) -> BuildInfo -> f BuildInfo)
    -> ([String] -> f [String])
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . ([String] -> f [String]) -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a [String]
    Lens' BuildInfo [String]
    extraLibFlavours
      {-# INLINE extraLibFlavours #-}

      extraDynLibFlavours :: Lens' a [String]
      extraDynLibFlavours = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> (([String] -> f [String]) -> BuildInfo -> f BuildInfo)
    -> ([String] -> f [String])
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . ([String] -> f [String]) -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a [String]
    Lens' BuildInfo [String]
    extraDynLibFlavours
      {-# INLINE extraDynLibFlavours #-}

      extraLibDirs :: Lens' a [String]
      extraLibDirs = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> (([String] -> f [String]) -> BuildInfo -> f BuildInfo)
    -> ([String] -> f [String])
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . ([String] -> f [String]) -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a [String]
    Lens' BuildInfo [String]
    extraLibDirs
      {-# INLINE extraLibDirs #-}

      extraLibDirsStatic :: Lens' a [String]
      extraLibDirsStatic = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> (([String] -> f [String]) -> BuildInfo -> f BuildInfo)
    -> ([String] -> f [String])
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . ([String] -> f [String]) -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a [String]
    Lens' BuildInfo [String]
    extraLibDirsStatic
      {-# INLINE extraLibDirsStatic #-}

      includeDirs :: Lens' a [FilePath]
      includeDirs = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> (([String] -> f [String]) -> BuildInfo -> f BuildInfo)
    -> ([String] -> f [String])
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . ([String] -> f [String]) -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a [String]
    Lens' BuildInfo [String]
    includeDirs
      {-# INLINE includeDirs #-}

      includes :: Lens' a [FilePath]
      includes = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> (([String] -> f [String]) -> BuildInfo -> f BuildInfo)
    -> ([String] -> f [String])
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . ([String] -> f [String]) -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a [String]
    Lens' BuildInfo [String]
    includes
      {-# INLINE includes #-}

      autogenIncludes :: Lens' a [FilePath]
      autogenIncludes = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> (([String] -> f [String]) -> BuildInfo -> f BuildInfo)
    -> ([String] -> f [String])
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . ([String] -> f [String]) -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a [String]
    Lens' BuildInfo [String]
    autogenIncludes
      {-# INLINE autogenIncludes #-}

      installIncludes :: Lens' a [FilePath]
      installIncludes = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> (([String] -> f [String]) -> BuildInfo -> f BuildInfo)
    -> ([String] -> f [String])
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . ([String] -> f [String]) -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a [String]
    Lens' BuildInfo [String]
    installIncludes
      {-# INLINE installIncludes #-}

      options :: Lens' a (PerCompilerFlavor [String])
      options = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> ((PerCompilerFlavor [String] -> f (PerCompilerFlavor [String]))
        -> BuildInfo -> f BuildInfo)
    -> (PerCompilerFlavor [String] -> f (PerCompilerFlavor [String]))
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . (PerCompilerFlavor [String] -> f (PerCompilerFlavor [String]))
    -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a (PerCompilerFlavor [String])
    Lens' BuildInfo (PerCompilerFlavor [String])
    options
      {-# INLINE options #-}

      profOptions :: Lens' a (PerCompilerFlavor [String])
      profOptions = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> ((PerCompilerFlavor [String] -> f (PerCompilerFlavor [String]))
        -> BuildInfo -> f BuildInfo)
    -> (PerCompilerFlavor [String] -> f (PerCompilerFlavor [String]))
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . (PerCompilerFlavor [String] -> f (PerCompilerFlavor [String]))
    -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a (PerCompilerFlavor [String])
    Lens' BuildInfo (PerCompilerFlavor [String])
    profOptions
      {-# INLINE profOptions #-}

      sharedOptions :: Lens' a (PerCompilerFlavor [String])
      sharedOptions = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> ((PerCompilerFlavor [String] -> f (PerCompilerFlavor [String]))
        -> BuildInfo -> f BuildInfo)
    -> (PerCompilerFlavor [String] -> f (PerCompilerFlavor [String]))
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . (PerCompilerFlavor [String] -> f (PerCompilerFlavor [String]))
    -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a (PerCompilerFlavor [String])
    Lens' BuildInfo (PerCompilerFlavor [String])
    sharedOptions
      {-# INLINE sharedOptions #-}

      staticOptions :: Lens' a (PerCompilerFlavor [String])
      staticOptions = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> ((PerCompilerFlavor [String] -> f (PerCompilerFlavor [String]))
        -> BuildInfo -> f BuildInfo)
    -> (PerCompilerFlavor [String] -> f (PerCompilerFlavor [String]))
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . (PerCompilerFlavor [String] -> f (PerCompilerFlavor [String]))
    -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a (PerCompilerFlavor [String])
    Lens' BuildInfo (PerCompilerFlavor [String])
    staticOptions
      {-# INLINE staticOptions #-}

      customFieldsBI :: Lens' a [(String, String)]
      customFieldsBI = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> (([(String, String)] -> f [(String, String)])
        -> BuildInfo -> f BuildInfo)
    -> ([(String, String)] -> f [(String, String)])
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . ([(String, String)] -> f [(String, String)])
    -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a [(String, String)]
    Lens' BuildInfo [(String, String)]
    customFieldsBI
      {-# INLINE customFieldsBI #-}

      targetBuildDepends :: Lens' a [Dependency]
      targetBuildDepends = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> (([Dependency] -> f [Dependency]) -> BuildInfo -> f BuildInfo)
    -> ([Dependency] -> f [Dependency])
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . ([Dependency] -> f [Dependency]) -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a [Dependency]
    Lens' BuildInfo [Dependency]
    targetBuildDepends
      {-# INLINE targetBuildDepends #-}

      mixins :: Lens' a [Mixin]
      mixins = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> (([Mixin] -> f [Mixin]) -> BuildInfo -> f BuildInfo)
    -> ([Mixin] -> f [Mixin])
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . ([Mixin] -> f [Mixin]) -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a [Mixin]
    Lens' BuildInfo [Mixin]
    mixins
      {-# INLINE mixins #-}

    instance HasBuildInfo BuildInfo where
      buildInfo :: Lens' BuildInfo BuildInfo
    buildInfo = (BuildInfo -> f BuildInfo) -> BuildInfo -> f BuildInfo
    forall a. a -> a
    id
      {-# INLINE buildInfo #-}

      buildable :: Lens' BuildInfo Bool
    buildable Bool -> f Bool
    f BuildInfo
    s = (Bool -> BuildInfo) -> f Bool -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\Bool
    x -> BuildInfo
    s{T.buildable = x}) (Bool -> f Bool
    f (BuildInfo -> Bool
    T.buildable BuildInfo
    s))
      {-# INLINE buildable #-}

      buildTools :: Lens' BuildInfo [LegacyExeDependency]
    buildTools [LegacyExeDependency] -> f [LegacyExeDependency]
    f BuildInfo
    s = ([LegacyExeDependency] -> BuildInfo)
    -> f [LegacyExeDependency] -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\[LegacyExeDependency]
    x -> BuildInfo
    s{T.buildTools = x}) ([LegacyExeDependency] -> f [LegacyExeDependency]
    f (BuildInfo -> [LegacyExeDependency]
    T.buildTools BuildInfo
    s))
      {-# INLINE buildTools #-}

      buildToolDepends :: Lens' BuildInfo [ExeDependency]
    buildToolDepends [ExeDependency] -> f [ExeDependency]
    f BuildInfo
    s = ([ExeDependency] -> BuildInfo) -> f [ExeDependency] -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\[ExeDependency]
    x -> BuildInfo
    s{T.buildToolDepends = x}) ([ExeDependency] -> f [ExeDependency]
    f (BuildInfo -> [ExeDependency]
    T.buildToolDepends BuildInfo
    s))
      {-# INLINE buildToolDepends #-}

      cppOptions :: Lens' BuildInfo [String]
    cppOptions [String] -> f [String]
    f BuildInfo
    s = ([String] -> BuildInfo) -> f [String] -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\[String]
    x -> BuildInfo
    s{T.cppOptions = x}) ([String] -> f [String]
    f (BuildInfo -> [String]
    T.cppOptions BuildInfo
    s))
      {-# INLINE cppOptions #-}

      asmOptions :: Lens' BuildInfo [String]
    asmOptions [String] -> f [String]
    f BuildInfo
    s = ([String] -> BuildInfo) -> f [String] -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\[String]
    x -> BuildInfo
    s{T.asmOptions = x}) ([String] -> f [String]
    f (BuildInfo -> [String]
    T.asmOptions BuildInfo
    s))
      {-# INLINE asmOptions #-}

      cmmOptions :: Lens' BuildInfo [String]
    cmmOptions [String] -> f [String]
    f BuildInfo
    s = ([String] -> BuildInfo) -> f [String] -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\[String]
    x -> BuildInfo
    s{T.cmmOptions = x}) ([String] -> f [String]
    f (BuildInfo -> [String]
    T.cmmOptions BuildInfo
    s))
      {-# INLINE cmmOptions #-}

      ccOptions :: Lens' BuildInfo [String]
    ccOptions [String] -> f [String]
    f BuildInfo
    s = ([String] -> BuildInfo) -> f [String] -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\[String]
    x -> BuildInfo
    s{T.ccOptions = x}) ([String] -> f [String]
    f (BuildInfo -> [String]
    T.ccOptions BuildInfo
    s))
      {-# INLINE ccOptions #-}

      cxxOptions :: Lens' BuildInfo [String]
    cxxOptions [String] -> f [String]
    f BuildInfo
    s = ([String] -> BuildInfo) -> f [String] -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\[String]
    x -> BuildInfo
    s{T.cxxOptions = x}) ([String] -> f [String]
    f (BuildInfo -> [String]
    T.cxxOptions BuildInfo
    s))
      {-# INLINE cxxOptions #-}

      ldOptions :: Lens' BuildInfo [String]
    ldOptions [String] -> f [String]
    f BuildInfo
    s = ([String] -> BuildInfo) -> f [String] -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\[String]
    x -> BuildInfo
    s{T.ldOptions = x}) ([String] -> f [String]
    f (BuildInfo -> [String]
    T.ldOptions BuildInfo
    s))
      {-# INLINE ldOptions #-}

      hsc2hsOptions :: Lens' BuildInfo [String]
    hsc2hsOptions [String] -> f [String]
    f BuildInfo
    s = ([String] -> BuildInfo) -> f [String] -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\[String]
    x -> BuildInfo
    s{T.hsc2hsOptions = x}) ([String] -> f [String]
    f (BuildInfo -> [String]
    T.hsc2hsOptions BuildInfo
    s))
      {-# INLINE hsc2hsOptions #-}

      pkgconfigDepends :: Lens' BuildInfo [PkgconfigDependency]
    pkgconfigDepends [PkgconfigDependency] -> f [PkgconfigDependency]
    f BuildInfo
    s = ([PkgconfigDependency] -> BuildInfo)
    -> f [PkgconfigDependency] -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\[PkgconfigDependency]
    x -> BuildInfo
    s{T.pkgconfigDepends = x}) ([PkgconfigDependency] -> f [PkgconfigDependency]
    f (BuildInfo -> [PkgconfigDependency]
    T.pkgconfigDepends BuildInfo
    s))
      {-# INLINE pkgconfigDepends #-}

      frameworks :: Lens' BuildInfo [String]
    frameworks [String] -> f [String]
    f BuildInfo
    s = ([String] -> BuildInfo) -> f [String] -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\[String]
    x -> BuildInfo
    s{T.frameworks = x}) ([String] -> f [String]
    f (BuildInfo -> [String]
    T.frameworks BuildInfo
    s))
      {-# INLINE frameworks #-}

      extraFrameworkDirs :: Lens' BuildInfo [String]
    extraFrameworkDirs [String] -> f [String]
    f BuildInfo
    s = ([String] -> BuildInfo) -> f [String] -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\[String]
    x -> BuildInfo
    s{T.extraFrameworkDirs = x}) ([String] -> f [String]
    f (BuildInfo -> [String]
    T.extraFrameworkDirs BuildInfo
    s))
      {-# INLINE extraFrameworkDirs #-}

      asmSources :: Lens' BuildInfo [String]
    asmSources [String] -> f [String]
    f BuildInfo
    s = ([String] -> BuildInfo) -> f [String] -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\[String]
    x -> BuildInfo
    s{T.asmSources = x}) ([String] -> f [String]
    f (BuildInfo -> [String]
    T.asmSources BuildInfo
    s))
      {-# INLINE asmSources #-}

      cmmSources :: Lens' BuildInfo [String]
    cmmSources [String] -> f [String]
    f BuildInfo
    s = ([String] -> BuildInfo) -> f [String] -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\[String]
    x -> BuildInfo
    s{T.cmmSources = x}) ([String] -> f [String]
    f (BuildInfo -> [String]
    T.cmmSources BuildInfo
    s))
      {-# INLINE cmmSources #-}

      cSources :: Lens' BuildInfo [String]
    cSources [String] -> f [String]
    f BuildInfo
    s = ([String] -> BuildInfo) -> f [String] -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\[String]
    x -> BuildInfo
    s{T.cSources = x}) ([String] -> f [String]
    f (BuildInfo -> [String]
    T.cSources BuildInfo
    s))
      {-# INLINE cSources #-}

      cxxSources :: Lens' BuildInfo [String]
    cxxSources [String] -> f [String]
    f BuildInfo
    s = ([String] -> BuildInfo) -> f [String] -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\[String]
    x -> BuildInfo
    s{T.cSources = x}) ([String] -> f [String]
    f (BuildInfo -> [String]
    T.cxxSources BuildInfo
    s))
      {-# INLINE cxxSources #-}

      jsSources :: Lens' BuildInfo [String]
    jsSources [String] -> f [String]
    f BuildInfo
    s = ([String] -> BuildInfo) -> f [String] -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\[String]
    x -> BuildInfo
    s{T.jsSources = x}) ([String] -> f [String]
    f (BuildInfo -> [String]
    T.jsSources BuildInfo
    s))
      {-# INLINE jsSources #-}

      hsSourceDirs :: Lens' BuildInfo [SymbolicPath PackageDir SourceDir]
    hsSourceDirs [SymbolicPath PackageDir SourceDir]
    -> f [SymbolicPath PackageDir SourceDir]
    f BuildInfo
    s = ([SymbolicPath PackageDir SourceDir] -> BuildInfo)
    -> f [SymbolicPath PackageDir SourceDir] -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\[SymbolicPath PackageDir SourceDir]
    x -> BuildInfo
    s{T.hsSourceDirs = x}) ([SymbolicPath PackageDir SourceDir]
    -> f [SymbolicPath PackageDir SourceDir]
    f (BuildInfo -> [SymbolicPath PackageDir SourceDir]
    T.hsSourceDirs BuildInfo
    s))
      {-# INLINE hsSourceDirs #-}

      otherModules :: Lens' BuildInfo [ModuleName]
    otherModules [ModuleName] -> f [ModuleName]
    f BuildInfo
    s = ([ModuleName] -> BuildInfo) -> f [ModuleName] -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\[ModuleName]
    x -> BuildInfo
    s{T.otherModules = x}) ([ModuleName] -> f [ModuleName]
    f (BuildInfo -> [ModuleName]
    T.otherModules BuildInfo
    s))
      {-# INLINE otherModules #-}

      virtualModules :: Lens' BuildInfo [ModuleName]
    virtualModules [ModuleName] -> f [ModuleName]
    f BuildInfo
    s = ([ModuleName] -> BuildInfo) -> f [ModuleName] -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\[ModuleName]
    x -> BuildInfo
    s{T.virtualModules = x}) ([ModuleName] -> f [ModuleName]
    f (BuildInfo -> [ModuleName]
    T.virtualModules BuildInfo
    s))
      {-# INLINE virtualModules #-}

      autogenModules :: Lens' BuildInfo [ModuleName]
    autogenModules [ModuleName] -> f [ModuleName]
    f BuildInfo
    s = ([ModuleName] -> BuildInfo) -> f [ModuleName] -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\[ModuleName]
    x -> BuildInfo
    s{T.autogenModules = x}) ([ModuleName] -> f [ModuleName]
    f (BuildInfo -> [ModuleName]
    T.autogenModules BuildInfo
    s))
      {-# INLINE autogenModules #-}

      defaultLanguage :: Lens' BuildInfo (Maybe Language)
    defaultLanguage Maybe Language -> f (Maybe Language)
    f BuildInfo
    s = (Maybe Language -> BuildInfo) -> f (Maybe Language) -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\Maybe Language
    x -> BuildInfo
    s{T.defaultLanguage = x}) (Maybe Language -> f (Maybe Language)
    f (BuildInfo -> Maybe Language
    T.defaultLanguage BuildInfo
    s))
      {-# INLINE defaultLanguage #-}

      otherLanguages :: Lens' BuildInfo [Language]
    otherLanguages [Language] -> f [Language]
    f BuildInfo
    s = ([Language] -> BuildInfo) -> f [Language] -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\[Language]
    x -> BuildInfo
    s{T.otherLanguages = x}) ([Language] -> f [Language]
    f (BuildInfo -> [Language]
    T.otherLanguages BuildInfo
    s))
      {-# INLINE otherLanguages #-}

      defaultExtensions :: Lens' BuildInfo [Extension]
    defaultExtensions [Extension] -> f [Extension]
    f BuildInfo
    s = ([Extension] -> BuildInfo) -> f [Extension] -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\[Extension]
    x -> BuildInfo
    s{T.defaultExtensions = x}) ([Extension] -> f [Extension]
    f (BuildInfo -> [Extension]
    T.defaultExtensions BuildInfo
    s))
      {-# INLINE defaultExtensions #-}

      otherExtensions :: Lens' BuildInfo [Extension]
    otherExtensions [Extension] -> f [Extension]
    f BuildInfo
    s = ([Extension] -> BuildInfo) -> f [Extension] -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\[Extension]
    x -> BuildInfo
    s{T.otherExtensions = x}) ([Extension] -> f [Extension]
    f (BuildInfo -> [Extension]
    T.otherExtensions BuildInfo
    s))
      {-# INLINE otherExtensions #-}

      oldExtensions :: Lens' BuildInfo [Extension]
    oldExtensions [Extension] -> f [Extension]
    f BuildInfo
    s = ([Extension] -> BuildInfo) -> f [Extension] -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\[Extension]
    x -> BuildInfo
    s{T.oldExtensions = x}) ([Extension] -> f [Extension]
    f (BuildInfo -> [Extension]
    T.oldExtensions BuildInfo
    s))
      {-# INLINE oldExtensions #-}

      extraLibs :: Lens' BuildInfo [String]
    extraLibs [String] -> f [String]
    f BuildInfo
    s = ([String] -> BuildInfo) -> f [String] -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\[String]
    x -> BuildInfo
    s{T.extraLibs = x}) ([String] -> f [String]
    f (BuildInfo -> [String]
    T.extraLibs BuildInfo
    s))
      {-# INLINE extraLibs #-}

      extraLibsStatic :: Lens' BuildInfo [String]
    extraLibsStatic [String] -> f [String]
    f BuildInfo
    s = ([String] -> BuildInfo) -> f [String] -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\[String]
    x -> BuildInfo
    s{T.extraLibsStatic = x}) ([String] -> f [String]
    f (BuildInfo -> [String]
    T.extraLibsStatic BuildInfo
    s))
      {-# INLINE extraLibsStatic #-}

      extraGHCiLibs :: Lens' BuildInfo [String]
    extraGHCiLibs [String] -> f [String]
    f BuildInfo
    s = ([String] -> BuildInfo) -> f [String] -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\[String]
    x -> BuildInfo
    s{T.extraGHCiLibs = x}) ([String] -> f [String]
    f (BuildInfo -> [String]
    T.extraGHCiLibs BuildInfo
    s))
      {-# INLINE extraGHCiLibs #-}

      extraBundledLibs :: Lens' BuildInfo [String]
    extraBundledLibs [String] -> f [String]
    f BuildInfo
    s = ([String] -> BuildInfo) -> f [String] -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\[String]
    x -> BuildInfo
    s{T.extraBundledLibs = x}) ([String] -> f [String]
    f (BuildInfo -> [String]
    T.extraBundledLibs BuildInfo
    s))
      {-# INLINE extraBundledLibs #-}

      extraLibFlavours :: Lens' BuildInfo [String]
    extraLibFlavours [String] -> f [String]
    f BuildInfo
    s = ([String] -> BuildInfo) -> f [String] -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\[String]
    x -> BuildInfo
    s{T.extraLibFlavours = x}) ([String] -> f [String]
    f (BuildInfo -> [String]
    T.extraLibFlavours BuildInfo
    s))
      {-# INLINE extraLibFlavours #-}

      extraDynLibFlavours :: Lens' BuildInfo [String]
    extraDynLibFlavours [String] -> f [String]
    f BuildInfo
    s = ([String] -> BuildInfo) -> f [String] -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\[String]
    x -> BuildInfo
    s{T.extraDynLibFlavours = x}) ([String] -> f [String]
    f (BuildInfo -> [String]
    T.extraDynLibFlavours BuildInfo
    s))
      {-# INLINE extraDynLibFlavours #-}

      extraLibDirs :: Lens' BuildInfo [String]
    extraLibDirs [String] -> f [String]
    f BuildInfo
    s = ([String] -> BuildInfo) -> f [String] -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\[String]
    x -> BuildInfo
    s{T.extraLibDirs = x}) ([String] -> f [String]
    f (BuildInfo -> [String]
    T.extraLibDirs BuildInfo
    s))
      {-# INLINE extraLibDirs #-}

      extraLibDirsStatic :: Lens' BuildInfo [String]
    extraLibDirsStatic [String] -> f [String]
    f BuildInfo
    s = ([String] -> BuildInfo) -> f [String] -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\[String]
    x -> BuildInfo
    s{T.extraLibDirsStatic = x}) ([String] -> f [String]
    f (BuildInfo -> [String]
    T.extraLibDirsStatic BuildInfo
    s))
      {-# INLINE extraLibDirsStatic #-}

      includeDirs :: Lens' BuildInfo [String]
    includeDirs [String] -> f [String]
    f BuildInfo
    s = ([String] -> BuildInfo) -> f [String] -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\[String]
    x -> BuildInfo
    s{T.includeDirs = x}) ([String] -> f [String]
    f (BuildInfo -> [String]
    T.includeDirs BuildInfo
    s))
      {-# INLINE includeDirs #-}

      includes :: Lens' BuildInfo [String]
    includes [String] -> f [String]
    f BuildInfo
    s = ([String] -> BuildInfo) -> f [String] -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\[String]
    x -> BuildInfo
    s{T.includes = x}) ([String] -> f [String]
    f (BuildInfo -> [String]
    T.includes BuildInfo
    s))
      {-# INLINE includes #-}

      autogenIncludes :: Lens' BuildInfo [String]
    autogenIncludes [String] -> f [String]
    f BuildInfo
    s = ([String] -> BuildInfo) -> f [String] -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\[String]
    x -> BuildInfo
    s{T.autogenIncludes = x}) ([String] -> f [String]
    f (BuildInfo -> [String]
    T.autogenIncludes BuildInfo
    s))
      {-# INLINE autogenIncludes #-}

      installIncludes :: Lens' BuildInfo [String]
    installIncludes [String] -> f [String]
    f BuildInfo
    s = ([String] -> BuildInfo) -> f [String] -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\[String]
    x -> BuildInfo
    s{T.installIncludes = x}) ([String] -> f [String]
    f (BuildInfo -> [String]
    T.installIncludes BuildInfo
    s))
      {-# INLINE installIncludes #-}

      options :: Lens' BuildInfo (PerCompilerFlavor [String])
    options PerCompilerFlavor [String] -> f (PerCompilerFlavor [String])
    f BuildInfo
    s = (PerCompilerFlavor [String] -> BuildInfo)
    -> f (PerCompilerFlavor [String]) -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\PerCompilerFlavor [String]
    x -> BuildInfo
    s{T.options = x}) (PerCompilerFlavor [String] -> f (PerCompilerFlavor [String])
    f (BuildInfo -> PerCompilerFlavor [String]
    T.options BuildInfo
    s))
      {-# INLINE options #-}

      profOptions :: Lens' BuildInfo (PerCompilerFlavor [String])
    profOptions PerCompilerFlavor [String] -> f (PerCompilerFlavor [String])
    f BuildInfo
    s = (PerCompilerFlavor [String] -> BuildInfo)
    -> f (PerCompilerFlavor [String]) -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\PerCompilerFlavor [String]
    x -> BuildInfo
    s{T.profOptions = x}) (PerCompilerFlavor [String] -> f (PerCompilerFlavor [String])
    f (BuildInfo -> PerCompilerFlavor [String]
    T.profOptions BuildInfo
    s))
      {-# INLINE profOptions #-}

      sharedOptions :: Lens' BuildInfo (PerCompilerFlavor [String])
    sharedOptions PerCompilerFlavor [String] -> f (PerCompilerFlavor [String])
    f BuildInfo
    s = (PerCompilerFlavor [String] -> BuildInfo)
    -> f (PerCompilerFlavor [String]) -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\PerCompilerFlavor [String]
    x -> BuildInfo
    s{T.sharedOptions = x}) (PerCompilerFlavor [String] -> f (PerCompilerFlavor [String])
    f (BuildInfo -> PerCompilerFlavor [String]
    T.sharedOptions BuildInfo
    s))
      {-# INLINE sharedOptions #-}

      staticOptions :: Lens' BuildInfo (PerCompilerFlavor [String])
    staticOptions PerCompilerFlavor [String] -> f (PerCompilerFlavor [String])
    f BuildInfo
    s = (PerCompilerFlavor [String] -> BuildInfo)
    -> f (PerCompilerFlavor [String]) -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\PerCompilerFlavor [String]
    x -> BuildInfo
    s{T.staticOptions = x}) (PerCompilerFlavor [String] -> f (PerCompilerFlavor [String])
    f (BuildInfo -> PerCompilerFlavor [String]
    T.staticOptions BuildInfo
    s))
      {-# INLINE staticOptions #-}

      customFieldsBI :: Lens' BuildInfo [(String, String)]
    customFieldsBI [(String, String)] -> f [(String, String)]
    f BuildInfo
    s = ([(String, String)] -> BuildInfo)
    -> f [(String, String)] -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\[(String, String)]
    x -> BuildInfo
    s{T.customFieldsBI = x}) ([(String, String)] -> f [(String, String)]
    f (BuildInfo -> [(String, String)]
    T.customFieldsBI BuildInfo
    s))
      {-# INLINE customFieldsBI #-}

      targetBuildDepends :: Lens' BuildInfo [Dependency]
    targetBuildDepends [Dependency] -> f [Dependency]
    f BuildInfo
    s = ([Dependency] -> BuildInfo) -> f [Dependency] -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\[Dependency]
    x -> BuildInfo
    s{T.targetBuildDepends = x}) ([Dependency] -> f [Dependency]
    f (BuildInfo -> [Dependency]
    T.targetBuildDepends BuildInfo
    s))
      {-# INLINE targetBuildDepends #-}

      mixins :: Lens' BuildInfo [Mixin]
    mixins [Mixin] -> f [Mixin]
    f BuildInfo
    s = ([Mixin] -> BuildInfo) -> f [Mixin] -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\[Mixin]
    x -> BuildInfo
    s{T.mixins = x}) ([Mixin] -> f [Mixin]
    f (BuildInfo -> [Mixin]
    T.mixins BuildInfo
    s))
      {-# INLINE mixins #-}

    class HasBuildInfos a where
      traverseBuildInfos :: Traversal' a BuildInfo