Cabal-2.0.1.0: A framework for packaging Haskell software

Safe Haskell | None
Language | Haskell2010

Distribution.Types.Library

Synopsis

- data Library = Library {
  - libName :: Maybe UnqualComponentName
  - exposedModules :: [ModuleName]
  - reexportedModules :: [ModuleReexport]
  - signatures :: [ModuleName]
  - libExposed :: Bool
  - libBuildInfo :: BuildInfo
  }
- emptyLibrary :: Library
- explicitLibModules :: Library -> [ModuleName]
- libModulesAutogen :: Library -> [ModuleName]
- libModules :: Library -> [ModuleName]

# Documentation

data Library #

Constructors

Library |

Fields

- libName :: Maybe UnqualComponentName
- exposedModules :: [ModuleName]
- reexportedModules :: [ModuleReexport]
- signatures :: [ModuleName]

  What sigs need implementations?

- libExposed :: Bool

  Is the lib to be exposed by default?

- libBuildInfo :: BuildInfo

Instances

Eq Library # |
Methods (==) :: Library -> Library -> Bool # (/=) :: Library -> Library -> Bool #
Data Library # |

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Library -> c Library Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Library Source #

toConstr :: Library -> Constr Source #

dataTypeOf :: Library -> DataType Source #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c Library) Source #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Library) Source #

gmapT :: (forall b. Data b => b -> b) -> Library -> Library Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Library -> r Source #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Library -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> Library -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Library -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Library -> m Library Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Library -> m Library Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Library -> m Library Source #

Read Library # |
Methods readsPrec :: Int -> ReadS Library Source # readList :: ReadS [Library] Source # readPrec :: ReadPrec Library Source # readListPrec :: ReadPrec [Library] Source #
Show Library # |
Methods showsPrec :: Int -> Library -> ShowS Source # show :: Library -> String Source # showList :: [Library] -> ShowS Source #
Generic Library # |
Associated Types type Rep Library :: * -> * Source # Methods from :: Library -> Rep Library x Source # to :: Rep Library x -> Library Source #
Semigroup Library # |
Methods (<>) :: Library -> Library -> Library Source # sconcat :: NonEmpty Library -> Library Source # stimes :: Integral b => b -> Library -> Library Source #
Monoid Library # |
Methods mempty :: Library Source # mappend :: Library -> Library -> Library Source # mconcat :: [Library] -> Library Source #
Binary Library # |
Methods put :: Library -> Put Source # get :: Get Library Source # putList :: [Library] -> Put Source #
type Rep Library # |

type Rep Library = D1 * (MetaData "Library" "Distribution.Types.Library" "Cabal-2.0.1.0" False) (C1 * (MetaCons "Library" PrefixI True) ((:*:) * ((:*:) * (S1 * (MetaSel (Just Symbol "libName") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Maybe UnqualComponentName))) ((:*:) * (S1 * (MetaSel (Just Symbol "exposedModules") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [ModuleName])) (S1 * (MetaSel (Just Symbol "reexportedModules") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [ModuleReexport])))) ((:*:) * (S1 * (MetaSel (Just Symbol "signatures") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [ModuleName])) ((:*:) * (S1 * (MetaSel (Just Symbol "libExposed") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Bool)) (S1 * (MetaSel (Just Symbol "libBuildInfo") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * BuildInfo))))))

emptyLibrary :: Library #

explicitLibModules :: Library -> [ModuleName] #

Get all the module names from the library (exposed and internal modules) which are explicitly listed in the package description which would need to be compiled. (This does not include reexports, which do not need to be compiled.) This may not include all modules for which GHC generated interface files (i.e., implicit modules.)

libModulesAutogen :: Library -> [ModuleName] #

Get all the auto generated module names from the library, exposed or not. This are a subset of `libModules`.

libModules :: Library -> [ModuleName] #

Deprecated: If you want all modules that are built with a library, use `allLibModules`. Otherwise, use `explicitLibModules` for ONLY the modules explicitly mentioned in the package description.

Backwards-compatibility shim for `explicitLibModules`. In most cases, you actually want `allLibModules`, which returns all modules that will actually be compiled, as opposed to those which are explicitly listed in the package description (`explicitLibModules`); unfortunately, the type signature for `allLibModules` is incompatible since we need a `ComponentLocalBuildInfo`.