packages feed

prettyprinter-1.7.1: prettyprinter.cabal

name:                prettyprinter
version:             1.7.1
cabal-version:       >= 1.10
category:            User Interfaces, Text
synopsis:            A modern, easy to use, well-documented, extensible pretty-printer.
description:         A modern, easy to use, well-documented, extensible pretty-printer. For more see README.md
license:             BSD2
license-file:        LICENSE.md
extra-source-files:  README.md
                   , CHANGELOG.md
                   , misc/version-compatibility-macros.h
author:              Phil Wadler, Daan Leijen, Max Bolingbroke, Edward Kmett, David Luposchainsky, Simon Jakobi
maintainer:          Simon Jakobi <simon.jakobi@gmail.com>, David Luposchainsky <dluposchainsky at google>
bug-reports:         http://github.com/quchen/prettyprinter/issues
homepage:            http://github.com/quchen/prettyprinter
build-type:          Simple
tested-with:         GHC==9.0.1, GHC==8.10.4, GHC==8.8.4, GHC==8.6.5, GHC==8.4.4, GHC==8.2.2, GHC==8.0.2, GHC==7.10.3, GHC==7.8.4, GHC==7.6.3, GHC==7.4.2

source-repository head
    type: git
    location: git://github.com/quchen/prettyprinter.git



library
    exposed-modules:
          Prettyprinter
        , Prettyprinter.Internal
        , Prettyprinter.Internal.Debug
        , Prettyprinter.Internal.Type
        , Prettyprinter.Render.String
        , Prettyprinter.Render.Text
        , Prettyprinter.Render.Tutorials.StackMachineTutorial
        , Prettyprinter.Render.Tutorials.TreeRenderingTutorial
        , Prettyprinter.Render.Util.Panic
        , Prettyprinter.Render.Util.SimpleDocTree
        , Prettyprinter.Render.Util.StackMachine
        , Prettyprinter.Util

        , Prettyprinter.Symbols.Unicode
        , Prettyprinter.Symbols.Ascii

        , Data.Text.Prettyprint.Doc
        , Data.Text.Prettyprint.Doc.Internal
        , Data.Text.Prettyprint.Doc.Internal.Debug
        , Data.Text.Prettyprint.Doc.Internal.Type
        , Data.Text.Prettyprint.Doc.Render.String
        , Data.Text.Prettyprint.Doc.Render.Text
        , Data.Text.Prettyprint.Doc.Render.Tutorials.StackMachineTutorial
        , Data.Text.Prettyprint.Doc.Render.Tutorials.TreeRenderingTutorial
        , Data.Text.Prettyprint.Doc.Render.Util.Panic
        , Data.Text.Prettyprint.Doc.Render.Util.SimpleDocTree
        , Data.Text.Prettyprint.Doc.Render.Util.StackMachine
        , Data.Text.Prettyprint.Doc.Util

        , Data.Text.Prettyprint.Doc.Symbols.Unicode
        , Data.Text.Prettyprint.Doc.Symbols.Ascii

    ghc-options: -Wall -O2
    hs-source-dirs: src
    include-dirs: misc
    default-language: Haskell2010
    other-extensions:
          BangPatterns
        , CPP
        , OverloadedStrings
        , DefaultSignatures
        , ScopedTypeVariables

    build-depends:
          base >= 4.5 && < 5

    if flag(text)
        build-depends: text >= 1.2
    else
        -- A fake text package, emulating the same API, but backed by String
        hs-source-dirs: src-text
        other-modules:
              Data.Text
            , Data.Text.IO
            , Data.Text.Lazy
            , Data.Text.Lazy.Builder

    if !impl(ghc >= 7.6)
        build-depends: ghc-prim

    if impl(ghc >= 8.0)
        ghc-options: -Wcompat
    if !impl(ghc >= 8.0)
        build-depends: semigroups >= 0.17
        build-depends: fail >= 4.9.0.0 && <4.10
    if !impl(ghc >= 7.10)
        build-depends: void >=0.4 && <0.8



Flag buildReadme
  Description: Build the readme generator
  Default:     False

Flag text
  Description: While it's a core value of @prettyprinter@ to use @Text@, there are rare
               circumstances (mostly when @prettyprinter@ arises as a dependency of
               test suites of packages like @bytestring@ or @text@ themselves) when
               this is inconvenient. In this case one can disable this flag, so that
               @prettyprinter@ fallbacks to @String@.
  Default:     True


executable generate_readme
    hs-source-dirs: app
    main-is: GenerateReadme.hs
    build-depends:
          base >= 4.7 && < 5
        , prettyprinter

        , text
        , template-haskell >= 2.9
    default-language: Haskell2010
    other-modules: MultilineTh
    other-extensions: OverloadedStrings
                    , TemplateHaskell
                    , QuasiQuotes
    if flag(buildReadme) && flag(text)
        buildable: True
    else
        buildable: False



test-suite doctest
    type: exitcode-stdio-1.0
    hs-source-dirs: test/Doctest
    main-is: Main.hs
    build-depends:
          base       >= 4.7 && < 5
        , doctest    >= 0.9
        , prettyprinter
        , QuickCheck >= 2.5
    ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N
    default-language: Haskell2010
    if impl (ghc < 7.10)
        buildable: False
        -- Doctest does not support searching through directories in old versions

test-suite testsuite
    type: exitcode-stdio-1.0
    hs-source-dirs: test/Testsuite
    main-is: Main.hs
    other-modules: StripTrailingSpace
    build-depends:
          base
        , prettyprinter

        , pgp-wordlist     >= 0.1
        , bytestring
        , quickcheck-instances >= 0.3
        , tasty            >= 0.10
        , tasty-hunit      >= 0.9
        , tasty-quickcheck >= 0.8
        , text
    ghc-options: -threaded -rtsopts -with-rtsopts=-N -Wall
    default-language: Haskell2010

    if !impl(ghc >= 8.0)
        build-depends: semigroups >= 0.6

    if !flag(text)
        buildable: False


benchmark fusion
    type: exitcode-stdio-1.0
    hs-source-dirs: bench
    main-is: Fusion.hs
    build-depends:
          base >= 4.5 && < 5
        , prettyprinter

        , gauge          >= 0.2
        , mtl            >= 2.1
        , random         >= 1.0
        , text
        , transformers   >= 0.3
        , ansi-wl-pprint >= 0.6
    ghc-options: -Wall -rtsopts
    default-language: Haskell2010
    other-extensions: OverloadedStrings

    if !flag(text)
        buildable: False

benchmark faster-unsafe-text
    build-depends:
          base >= 4.5 && < 5
        , prettyprinter

        , gauge >= 0.2
        , text

    hs-source-dirs:      bench
    main-is:             FasterUnsafeText.hs
    ghc-options:         -rtsopts -Wall
    default-language:    Haskell2010
    type:                exitcode-stdio-1.0

    if !flag(text)
        buildable: False

benchmark large-output
    build-depends:
          base >= 4.5 && < 5
        , base-compat >=0.9.3 && <0.12
        , prettyprinter
        , ansi-wl-pprint

        , gauge >= 0.2
        , QuickCheck >= 2.7
        , containers
        , text
        , deepseq

    hs-source-dirs:      bench
    main-is:             LargeOutput.hs
    ghc-options:         -rtsopts -Wall
    default-language:    Haskell2010
    type:                exitcode-stdio-1.0

    if !impl(ghc >= 7.6)
        build-depends: ghc-prim

    if !impl(ghc >= 8.0)
        build-depends: semigroups

    if !flag(text)
        buildable: False