{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
module Distribution.Types.SetupBuildInfo (
SetupBuildInfo(..)
) where
import Prelude ()
import Distribution.Compat.Prelude
import Distribution.Types.Dependency
data SetupBuildInfo = SetupBuildInfo
{ setupDepends :: [Dependency]
, defaultSetupDepends :: Bool
}
deriving (Generic, Show, Eq, Read, Typeable, Data)
instance Binary SetupBuildInfo
instance Structured SetupBuildInfo
instance NFData SetupBuildInfo where rnf = genericRnf
instance Monoid SetupBuildInfo where
mempty = SetupBuildInfo [] False
mappend = (<>)
instance Semigroup SetupBuildInfo where
a <> b = SetupBuildInfo
(setupDepends a <> setupDepends b)
(defaultSetupDepends a || defaultSetupDepends b)