module Distribution.Types.Mixin (
Mixin(..),
) where
import Distribution.Compat.Prelude
import Prelude ()
import Text.PrettyPrint ((<+>))
import Distribution.Parsec
import Distribution.Pretty
import Distribution.Types.IncludeRenaming
import Distribution.Types.PackageName
import qualified Distribution.Compat.CharParsing as P
data Mixin = Mixin { mixinPackageName :: PackageName
, mixinIncludeRenaming :: IncludeRenaming }
deriving (Show, Read, Eq, Ord, Typeable, Data, Generic)
instance Binary Mixin
instance Structured Mixin
instance NFData Mixin where rnf = genericRnf
instance Pretty Mixin where
pretty (Mixin pkg_name incl) = pretty pkg_name <+> pretty incl
instance Parsec Mixin where
parsec = do
mod_name <- parsec
P.spaces
incl <- parsec
return (Mixin mod_name incl)