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
buildInfo LensLike f a a BuildInfo BuildInfo
-> ((Bool -> f Bool) -> BuildInfo -> f BuildInfo)
-> LensLike f a a Bool Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Bool -> f Bool) -> BuildInfo -> f BuildInfo
forall a. HasBuildInfo a => Lens' a Bool
buildable
   {-# INLINE buildable #-}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

   hsSourceDirs :: Lens' a [SymbolicPath PackageDir SourceDir]
   hsSourceDirs = LensLike f a a BuildInfo BuildInfo
forall a. HasBuildInfo a => Lens' a BuildInfo
buildInfo LensLike f a a BuildInfo BuildInfo
-> (([SymbolicPath PackageDir SourceDir]
     -> f [SymbolicPath PackageDir SourceDir])
    -> BuildInfo -> f BuildInfo)
-> LensLike
     f
     a
     a
     [SymbolicPath PackageDir SourceDir]
     [SymbolicPath PackageDir SourceDir]
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]
hsSourceDirs
   {-# INLINE hsSourceDirs #-}

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

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

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

   defaultLanguage :: Lens' a (Maybe Language)
   defaultLanguage = LensLike f a a BuildInfo BuildInfo
forall a. HasBuildInfo a => Lens' a BuildInfo
buildInfo LensLike f a a BuildInfo BuildInfo
-> ((Maybe Language -> f (Maybe Language))
    -> BuildInfo -> f BuildInfo)
-> LensLike f a a (Maybe Language) (Maybe Language)
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)
defaultLanguage
   {-# INLINE defaultLanguage #-}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

   options :: Lens' a (PerCompilerFlavor [String])
   options = LensLike f a a BuildInfo BuildInfo
forall a. HasBuildInfo a => Lens' a BuildInfo
buildInfo LensLike f a a BuildInfo BuildInfo
-> ((PerCompilerFlavor [String] -> f (PerCompilerFlavor [String]))
    -> BuildInfo -> f BuildInfo)
-> LensLike
     f a a (PerCompilerFlavor [String]) (PerCompilerFlavor [String])
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])
options
   {-# INLINE options #-}

   profOptions :: Lens' a (PerCompilerFlavor [String])
   profOptions = LensLike f a a BuildInfo BuildInfo
forall a. HasBuildInfo a => Lens' a BuildInfo
buildInfo LensLike f a a BuildInfo BuildInfo
-> ((PerCompilerFlavor [String] -> f (PerCompilerFlavor [String]))
    -> BuildInfo -> f BuildInfo)
-> LensLike
     f a a (PerCompilerFlavor [String]) (PerCompilerFlavor [String])
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])
profOptions
   {-# INLINE profOptions #-}

   sharedOptions :: Lens' a (PerCompilerFlavor [String])
   sharedOptions = LensLike f a a BuildInfo BuildInfo
forall a. HasBuildInfo a => Lens' a BuildInfo
buildInfo LensLike f a a BuildInfo BuildInfo
-> ((PerCompilerFlavor [String] -> f (PerCompilerFlavor [String]))
    -> BuildInfo -> f BuildInfo)
-> LensLike
     f a a (PerCompilerFlavor [String]) (PerCompilerFlavor [String])
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])
sharedOptions
   {-# INLINE sharedOptions #-}

   staticOptions :: Lens' a (PerCompilerFlavor [String])
   staticOptions = LensLike f a a BuildInfo BuildInfo
forall a. HasBuildInfo a => Lens' a BuildInfo
buildInfo LensLike f a a BuildInfo BuildInfo
-> ((PerCompilerFlavor [String] -> f (PerCompilerFlavor [String]))
    -> BuildInfo -> f BuildInfo)
-> LensLike
     f a a (PerCompilerFlavor [String]) (PerCompilerFlavor [String])
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])
staticOptions
   {-# INLINE staticOptions #-}

   customFieldsBI :: Lens' a [(String,String)]
   customFieldsBI = LensLike f a a BuildInfo BuildInfo
forall a. HasBuildInfo a => Lens' a BuildInfo
buildInfo LensLike f a a BuildInfo BuildInfo
-> (([(String, String)] -> f [(String, String)])
    -> BuildInfo -> f BuildInfo)
-> LensLike f a a [(String, String)] [(String, String)]
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)]
customFieldsBI
   {-# INLINE customFieldsBI #-}

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

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


instance HasBuildInfo BuildInfo where
    buildInfo :: LensLike f BuildInfo BuildInfo BuildInfo BuildInfo
buildInfo = LensLike f BuildInfo BuildInfo BuildInfo BuildInfo
forall a. a -> a
id
    {-# INLINE buildInfo #-}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    hsSourceDirs :: LensLike
  f
  BuildInfo
  BuildInfo
  [SymbolicPath PackageDir SourceDir]
  [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 (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (\[SymbolicPath PackageDir SourceDir]
x -> BuildInfo
s { hsSourceDirs :: [SymbolicPath PackageDir SourceDir]
T.hsSourceDirs = [SymbolicPath PackageDir SourceDir]
x }) ([SymbolicPath PackageDir SourceDir]
-> f [SymbolicPath PackageDir SourceDir]
f (BuildInfo -> [SymbolicPath PackageDir SourceDir]
T.hsSourceDirs BuildInfo
s))
    {-# INLINE hsSourceDirs #-}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

class HasBuildInfos a where
  traverseBuildInfos :: Traversal' a BuildInfo