{-# LANGUAGE NoImplicitPrelude #-}

module Stack.Types.ExtraDirs
  ( ExtraDirs (..)
  ) where

import           Generics.Deriving.Monoid ( mappenddefault, memptydefault )
import           Stack.Prelude

data ExtraDirs = ExtraDirs
  { ExtraDirs -> [Path Abs Dir]
edBins :: ![Path Abs Dir]
  , ExtraDirs -> [Path Abs Dir]
edInclude :: ![Path Abs Dir]
  , ExtraDirs -> [Path Abs Dir]
edLib :: ![Path Abs Dir]
  }
  deriving (Int -> ExtraDirs -> ShowS
[ExtraDirs] -> ShowS
ExtraDirs -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ExtraDirs] -> ShowS
$cshowList :: [ExtraDirs] -> ShowS
show :: ExtraDirs -> String
$cshow :: ExtraDirs -> String
showsPrec :: Int -> ExtraDirs -> ShowS
$cshowsPrec :: Int -> ExtraDirs -> ShowS
Show, forall x. Rep ExtraDirs x -> ExtraDirs
forall x. ExtraDirs -> Rep ExtraDirs x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ExtraDirs x -> ExtraDirs
$cfrom :: forall x. ExtraDirs -> Rep ExtraDirs x
Generic)

instance Semigroup ExtraDirs where
  <> :: ExtraDirs -> ExtraDirs -> ExtraDirs
(<>) = forall a. (Generic a, Monoid' (Rep a)) => a -> a -> a
mappenddefault

instance Monoid ExtraDirs where
  mempty :: ExtraDirs
mempty = forall a. (Generic a, Monoid' (Rep a)) => a
memptydefault
  mappend :: ExtraDirs -> ExtraDirs -> ExtraDirs
mappend = forall a. Semigroup a => a -> a -> a
(<>)