homepage: ''
changelog-type: ''
hash: d92172580179ae9338cb58504d1b05c058ce0d593ef4f67a88dbef842f693ae6
test-bench-deps: {}
maintainer: hvr@gnu.org
synopsis: Semantic CPP feature macros for base
changelog: ''
basic-deps:
  base: ! '>=4.3 && <4.11'
all-versions:
- '0.1'
author: Herbert Valerio Riedel
latest: '0.1'
description-type: haddock
description: ! 'This provides a set of feature macros describing features of @base@
  in a semantic way.


  See <base-feature-macros/src/base-feature-macros.h base-feature-macros.h> 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 @\<base-feature-macros.h\>@ header
  like so


  > module M where

  >

  > #include <base-feature-macros.h>

  >

  > #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

  <https://github.com/quchen/articles/blob/master/haskell-cpp-compatibility.md "Make
  macros mean something – readable backwards compatibility with CPP">.'
license-name: BSD3

Update from Hackage at 2017-05-13T08:47:47Z
Update from Hackage at 2017-05-13T08:47:47Z
