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

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

import Distribution.Types.Dependency     (Dependency)
import Distribution.Types.SetupBuildInfo (SetupBuildInfo)

import qualified Distribution.Types.SetupBuildInfo as T

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

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