    module Distribution.Types.Library.Lens
      ( Library
      , module Distribution.Types.Library.Lens
      ) where

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

    import Distribution.ModuleName (ModuleName)
    import Distribution.Types.BuildInfo (BuildInfo)
    import Distribution.Types.Library (Library)
    import Distribution.Types.LibraryName (LibraryName)
    import Distribution.Types.LibraryVisibility (LibraryVisibility)
    import Distribution.Types.ModuleReexport (ModuleReexport)

    import qualified Distribution.Types.Library as T

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

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

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

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

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

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

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