cabal-version:       >=1.10
name:                Prelude
version:             0.1.0.0

license:             BSD3
license-file:        LICENSE
author:              Herbert Valerio Riedel
copyright:           2017-2018 Herbert Valerio Riedel
maintainer:          hvr@gnu.org
bug-reports:         https://github.com/hvr/Prelude/issues
category:            Prelude
build-type:          Simple
synopsis:            A Prelude module replacement
description:
  This package provides a "Prelude" module drop-in replacement for [base](https://hackage.haskell.org/package/base)'s @Prelude@ module.
  .
  Goals of this package include:
  .
  * Be reasonably modest and remain close in spirit to the @base@ package's scope
  .
  * Depend only on @base@ (via @base-noprelude@) for recent GHC versions
  .
  * Avoid partial functions being in scope by default; redefine common partial functions such as @read@ or @head@ to be 'Maybe'-valued
  .
  * Provide a uniform "Prelude" across multiple GHC releases (currently GHC 7.0 and newer supported) to the extent possible given typeclass restructurings such as AMP or FTP
  .
  * Reduce @import@ clutter by reexporting common verbs from modules such as @Control.Monad@ and @Control.Applicative@
  .
  === Versioning and Usage
  .
  This package is intended to be used in combination with [base-noprelude](https://hackage.haskell.org/package/base-noprelude) and
  possibly [base-orphans](https://hackage.haskell.org/package/base-orphans). @Prelude@ strives to be faithful to
  the [PVP](https://pvp.haskell.org/); however, for technical reasons @Prelude@'s API is not fully determined by its version due to changes in core typeclasses and consequently it's strongly advised to declare a dependency on @Prelude@ always in conjunction with a dependency on @base-noprelude@.
  .
  For instance, all you need to do in order to use this package if you were previously depending on [base](https://hackage.haskell.org/package/base) via
  .
  > build-depends:
  >     base ^>= 4.10.0.0 || ^>= 4.11.0.0
  .
  is to replace @base@ by @base-noprelude@ and also add a dependency on @Prelude@ like so
  .
  > build-depends:
  >     Prelude ^>= 0.1.0.0
  >   , base-noprelude ^>= 4.10.0.0 || ^>= 4.11.0.0
  .
  and this will effectively replace the implicit "Prelude" module.

source-repository head
  type: git
  location: https://github.com/hvr/Prelude.git

library
  hs-source-dirs:      src
  exposed-modules:     Prelude

  default-language:    Haskell2010
  other-extensions:    BangPatterns CPP NoImplicitPrelude

  build-depends:       base-noprelude >=4.3 && <4.13

  if !impl(ghc >= 8.0)
    build-depends: semigroups >= 0.18.5 && < 0.19
                 , fail == 4.9.*
                 , transformers >= 0.3.0.0 && < 0.6

  if impl(ghc == 7.4.*)
    build-depends: ghc-prim == 0.2.*