    {-# LANGUAGE DataKinds #-}

    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 #-}

      jsppOptions :: Lens' a [String]
      jsppOptions = 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]
    jsppOptions
      {-# INLINE jsppOptions #-}

      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 [RelativePath Framework File]
      frameworks = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> (([RelativePath Framework 'File]
         -> f [RelativePath Framework 'File])
        -> BuildInfo -> f BuildInfo)
    -> ([RelativePath Framework 'File]
        -> f [RelativePath Framework 'File])
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . ([RelativePath Framework 'File]
     -> f [RelativePath Framework 'File])
    -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a [RelativePath Framework 'File]
    Lens' BuildInfo [RelativePath Framework 'File]
    frameworks
      {-# INLINE frameworks #-}

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

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

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

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

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

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

      hsSourceDirs :: Lens' a [SymbolicPath Pkg (Dir Source)]
      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 Pkg ('Dir Source)]
         -> f [SymbolicPath Pkg ('Dir Source)])
        -> BuildInfo -> f BuildInfo)
    -> ([SymbolicPath Pkg ('Dir Source)]
        -> f [SymbolicPath Pkg ('Dir Source)])
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . ([SymbolicPath Pkg ('Dir Source)]
     -> f [SymbolicPath Pkg ('Dir Source)])
    -> BuildInfo -> f BuildInfo
    forall a.
    HasBuildInfo a =>
    Lens' a [SymbolicPath Pkg ('Dir Source)]
    Lens' BuildInfo [SymbolicPath Pkg ('Dir Source)]
    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 [SymbolicPath Pkg (Dir Lib)]
      extraLibDirs = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> (([SymbolicPath Pkg ('Dir Lib)]
         -> f [SymbolicPath Pkg ('Dir Lib)])
        -> BuildInfo -> f BuildInfo)
    -> ([SymbolicPath Pkg ('Dir Lib)]
        -> f [SymbolicPath Pkg ('Dir Lib)])
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . ([SymbolicPath Pkg ('Dir Lib)] -> f [SymbolicPath Pkg ('Dir Lib)])
    -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a [SymbolicPath Pkg ('Dir Lib)]
    Lens' BuildInfo [SymbolicPath Pkg ('Dir Lib)]
    extraLibDirs
      {-# INLINE extraLibDirs #-}

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

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

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

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

      installIncludes :: Lens' a [RelativePath Include File]
      installIncludes = LensLike f a a BuildInfo BuildInfo
    forall a. HasBuildInfo a => Lens' a BuildInfo
    Lens' a BuildInfo
    buildInfo LensLike f a a BuildInfo BuildInfo
    -> (([RelativePath Include 'File]
         -> f [RelativePath Include 'File])
        -> BuildInfo -> f BuildInfo)
    -> ([RelativePath Include 'File] -> f [RelativePath Include 'File])
    -> a
    -> f a
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . ([RelativePath Include 'File] -> f [RelativePath Include 'File])
    -> BuildInfo -> f BuildInfo
    forall a. HasBuildInfo a => Lens' a [RelativePath Include 'File]
    Lens' BuildInfo [RelativePath Include 'File]
    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 #-}

      profSharedOptions :: Lens' a (PerCompilerFlavor [String])
      profSharedOptions = 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])
    profSharedOptions
      {-# INLINE profSharedOptions #-}

      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 #-}

      jsppOptions :: Lens' BuildInfo [String]
    jsppOptions [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.jsppOptions = x}) ([String] -> f [String]
    f (BuildInfo -> [String]
    T.jsppOptions BuildInfo
    s))
      {-# INLINE jsppOptions #-}

      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 [RelativePath Framework 'File]
    frameworks [RelativePath Framework 'File] -> f [RelativePath Framework 'File]
    f BuildInfo
    s = ([RelativePath Framework 'File] -> BuildInfo)
    -> f [RelativePath Framework 'File] -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\[RelativePath Framework 'File]
    x -> BuildInfo
    s{T.frameworks = x}) ([RelativePath Framework 'File] -> f [RelativePath Framework 'File]
    f (BuildInfo -> [RelativePath Framework 'File]
    T.frameworks BuildInfo
    s))
      {-# INLINE frameworks #-}

      extraFrameworkDirs :: Lens' BuildInfo [SymbolicPath Pkg ('Dir Framework)]
    extraFrameworkDirs [SymbolicPath Pkg ('Dir Framework)]
    -> f [SymbolicPath Pkg ('Dir Framework)]
    f BuildInfo
    s = ([SymbolicPath Pkg ('Dir Framework)] -> BuildInfo)
    -> f [SymbolicPath Pkg ('Dir Framework)] -> 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 Pkg ('Dir Framework)]
    x -> BuildInfo
    s{T.extraFrameworkDirs = x}) ([SymbolicPath Pkg ('Dir Framework)]
    -> f [SymbolicPath Pkg ('Dir Framework)]
    f (BuildInfo -> [SymbolicPath Pkg ('Dir Framework)]
    T.extraFrameworkDirs BuildInfo
    s))
      {-# INLINE extraFrameworkDirs #-}

      asmSources :: Lens' BuildInfo [SymbolicPath Pkg 'File]
    asmSources [SymbolicPath Pkg 'File] -> f [SymbolicPath Pkg 'File]
    f BuildInfo
    s = ([SymbolicPath Pkg 'File] -> BuildInfo)
    -> f [SymbolicPath Pkg 'File] -> 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 Pkg 'File]
    x -> BuildInfo
    s{T.asmSources = x}) ([SymbolicPath Pkg 'File] -> f [SymbolicPath Pkg 'File]
    f (BuildInfo -> [SymbolicPath Pkg 'File]
    T.asmSources BuildInfo
    s))
      {-# INLINE asmSources #-}

      cmmSources :: Lens' BuildInfo [SymbolicPath Pkg 'File]
    cmmSources [SymbolicPath Pkg 'File] -> f [SymbolicPath Pkg 'File]
    f BuildInfo
    s = ([SymbolicPath Pkg 'File] -> BuildInfo)
    -> f [SymbolicPath Pkg 'File] -> 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 Pkg 'File]
    x -> BuildInfo
    s{T.cmmSources = x}) ([SymbolicPath Pkg 'File] -> f [SymbolicPath Pkg 'File]
    f (BuildInfo -> [SymbolicPath Pkg 'File]
    T.cmmSources BuildInfo
    s))
      {-# INLINE cmmSources #-}

      cSources :: Lens' BuildInfo [SymbolicPath Pkg 'File]
    cSources [SymbolicPath Pkg 'File] -> f [SymbolicPath Pkg 'File]
    f BuildInfo
    s = ([SymbolicPath Pkg 'File] -> BuildInfo)
    -> f [SymbolicPath Pkg 'File] -> 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 Pkg 'File]
    x -> BuildInfo
    s{T.cSources = x}) ([SymbolicPath Pkg 'File] -> f [SymbolicPath Pkg 'File]
    f (BuildInfo -> [SymbolicPath Pkg 'File]
    T.cSources BuildInfo
    s))
      {-# INLINE cSources #-}

      cxxSources :: Lens' BuildInfo [SymbolicPath Pkg 'File]
    cxxSources [SymbolicPath Pkg 'File] -> f [SymbolicPath Pkg 'File]
    f BuildInfo
    s = ([SymbolicPath Pkg 'File] -> BuildInfo)
    -> f [SymbolicPath Pkg 'File] -> 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 Pkg 'File]
    x -> BuildInfo
    s{T.cSources = x}) ([SymbolicPath Pkg 'File] -> f [SymbolicPath Pkg 'File]
    f (BuildInfo -> [SymbolicPath Pkg 'File]
    T.cxxSources BuildInfo
    s))
      {-# INLINE cxxSources #-}

      jsSources :: Lens' BuildInfo [SymbolicPath Pkg 'File]
    jsSources [SymbolicPath Pkg 'File] -> f [SymbolicPath Pkg 'File]
    f BuildInfo
    s = ([SymbolicPath Pkg 'File] -> BuildInfo)
    -> f [SymbolicPath Pkg 'File] -> 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 Pkg 'File]
    x -> BuildInfo
    s{T.jsSources = x}) ([SymbolicPath Pkg 'File] -> f [SymbolicPath Pkg 'File]
    f (BuildInfo -> [SymbolicPath Pkg 'File]
    T.jsSources BuildInfo
    s))
      {-# INLINE jsSources #-}

      hsSourceDirs :: Lens' BuildInfo [SymbolicPath Pkg ('Dir Source)]
    hsSourceDirs [SymbolicPath Pkg ('Dir Source)]
    -> f [SymbolicPath Pkg ('Dir Source)]
    f BuildInfo
    s = ([SymbolicPath Pkg ('Dir Source)] -> BuildInfo)
    -> f [SymbolicPath Pkg ('Dir Source)] -> 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 Pkg ('Dir Source)]
    x -> BuildInfo
    s{T.hsSourceDirs = x}) ([SymbolicPath Pkg ('Dir Source)]
    -> f [SymbolicPath Pkg ('Dir Source)]
    f (BuildInfo -> [SymbolicPath Pkg ('Dir Source)]
    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 [SymbolicPath Pkg ('Dir Lib)]
    extraLibDirs [SymbolicPath Pkg ('Dir Lib)] -> f [SymbolicPath Pkg ('Dir Lib)]
    f BuildInfo
    s = ([SymbolicPath Pkg ('Dir Lib)] -> BuildInfo)
    -> f [SymbolicPath Pkg ('Dir Lib)] -> 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 Pkg ('Dir Lib)]
    x -> BuildInfo
    s{T.extraLibDirs = x}) ([SymbolicPath Pkg ('Dir Lib)] -> f [SymbolicPath Pkg ('Dir Lib)]
    f (BuildInfo -> [SymbolicPath Pkg ('Dir Lib)]
    T.extraLibDirs BuildInfo
    s))
      {-# INLINE extraLibDirs #-}

      extraLibDirsStatic :: Lens' BuildInfo [SymbolicPath Pkg ('Dir Lib)]
    extraLibDirsStatic [SymbolicPath Pkg ('Dir Lib)] -> f [SymbolicPath Pkg ('Dir Lib)]
    f BuildInfo
    s = ([SymbolicPath Pkg ('Dir Lib)] -> BuildInfo)
    -> f [SymbolicPath Pkg ('Dir Lib)] -> 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 Pkg ('Dir Lib)]
    x -> BuildInfo
    s{T.extraLibDirsStatic = x}) ([SymbolicPath Pkg ('Dir Lib)] -> f [SymbolicPath Pkg ('Dir Lib)]
    f (BuildInfo -> [SymbolicPath Pkg ('Dir Lib)]
    T.extraLibDirsStatic BuildInfo
    s))
      {-# INLINE extraLibDirsStatic #-}

      includeDirs :: Lens' BuildInfo [SymbolicPath Pkg ('Dir Include)]
    includeDirs [SymbolicPath Pkg ('Dir Include)]
    -> f [SymbolicPath Pkg ('Dir Include)]
    f BuildInfo
    s = ([SymbolicPath Pkg ('Dir Include)] -> BuildInfo)
    -> f [SymbolicPath Pkg ('Dir Include)] -> 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 Pkg ('Dir Include)]
    x -> BuildInfo
    s{T.includeDirs = x}) ([SymbolicPath Pkg ('Dir Include)]
    -> f [SymbolicPath Pkg ('Dir Include)]
    f (BuildInfo -> [SymbolicPath Pkg ('Dir Include)]
    T.includeDirs BuildInfo
    s))
      {-# INLINE includeDirs #-}

      includes :: Lens' BuildInfo [SymbolicPath Include 'File]
    includes [SymbolicPath Include 'File] -> f [SymbolicPath Include 'File]
    f BuildInfo
    s = ([SymbolicPath Include 'File] -> BuildInfo)
    -> f [SymbolicPath Include 'File] -> 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 Include 'File]
    x -> BuildInfo
    s{T.includes = x}) ([SymbolicPath Include 'File] -> f [SymbolicPath Include 'File]
    f (BuildInfo -> [SymbolicPath Include 'File]
    T.includes BuildInfo
    s))
      {-# INLINE includes #-}

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

      installIncludes :: Lens' BuildInfo [RelativePath Include 'File]
    installIncludes [RelativePath Include 'File] -> f [RelativePath Include 'File]
    f BuildInfo
    s = ([RelativePath Include 'File] -> BuildInfo)
    -> f [RelativePath Include 'File] -> f BuildInfo
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (\[RelativePath Include 'File]
    x -> BuildInfo
    s{T.installIncludes = x}) ([RelativePath Include 'File] -> f [RelativePath Include 'File]
    f (BuildInfo -> [RelativePath Include 'File]
    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 #-}

      profSharedOptions :: Lens' BuildInfo (PerCompilerFlavor [String])
    profSharedOptions 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.profSharedOptions = x}) (PerCompilerFlavor [String] -> f (PerCompilerFlavor [String])
    f (BuildInfo -> PerCompilerFlavor [String]
    T.profSharedOptions BuildInfo
    s))
      {-# INLINE profSharedOptions #-}

      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