name: base-feature-macros version: 0.1 x-revision: 1 synopsis: Semantic CPP feature macros for base license: BSD3 license-file: LICENSE author: Herbert Valerio Riedel maintainer: hvr@gnu.org category: Development build-type: Simple cabal-version: >=1.10 bug-reports: https://github.com/hvr/base-feature-macros/issues description: This provides a set of feature macros describing features of @base@ in a semantic way. . See for set of currently provided macros. . In order to use the CPP header provided by this package, add this package as a dependency to your @.cabal@ file, i.e. . > build-depends: base-feature-macros: >= 0.1 && < 0.2 . while making sure that the version specified as lower bound defines the feature-macros your code tests for. This is particularly important as CPP will implicitly treat undefined CPP macros as having the value @0@. See also GNU CPP/CC's @-Wundef@ warning to detect such errors. . Then in your code, you can include and use the @\@ header like so . > module M where > > #include > > #if !HAVE_FOLDABLE_TRAVERSABLE_IN_PRELUDE > import Data.Foldable (Foldable (..)) > import Prelude hiding (foldr, foldr1) > #endif > #if !HAVE_MONOID_IN_PRELUDE > import Data.Monoid hiding ((<>)) > #endif . This package is inspired by the blogpost . source-repository head type: git location: https://github.com/hvr/base-feature-macros.git library build-depends: base >=4.3 && <4.11 default-language: Haskell2010 install-includes: base-feature-macros.h