cabal-version: 3.0

name:
  prettyprinter-combinators
version:
  0.1.2
synopsis:
  Some useful combinators for the prettyprinter package
description:
  Various utilities that make writing Pretty instances easier.

  Notable utilites include automatic deriving of Pretty instance via
  Generic, Data, or Show instance.

category:
  User Interfaces, Text

license:
  Apache-2.0
license-file:
  LICENSE
author:
  Sergey Vinokurov
maintainer:
  Sergey Vinokurov <serg.foo@gmail.com>

tested-with:
  , GHC == 9.2.8
  , GHC == 9.4.7
  , GHC == 9.6.3
  , GHC == 9.8.1

build-type:
  Simple

extra-source-files:
  Changelog.md
  Readme.md

homepage: https://github.com/sergv/prettyprinter-combinators
source-repository head
  type: git
  location: https://github.com/sergv/prettyprinter-combinators.git

common ghc-options
  default-language:
    GHC2021

  ghc-options:
    -Weverything
    -Wno-all-missed-specialisations
    -Wno-implicit-prelude
    -Wno-missed-specialisations
    -Wno-missing-import-lists
    -Wno-missing-local-signatures
    -Wno-missing-safe-haskell-mode
    -Wno-safe
    -Wno-type-defaults
    -Wno-unsafe

  if impl(ghc >= 8.8)
    ghc-options:
      -Wno-missing-deriving-strategies

  if impl(ghc >= 9.2)
    ghc-options:
      -Wno-missing-kind-signatures

  if impl(ghc >= 9.8)
    ghc-options:
      -Wno-missing-role-annotations
      -Wno-missing-poly-kind-signatures

library
  import: ghc-options
  exposed-modules:
    Prettyprinter.Combinators
    Prettyprinter.Data
    Prettyprinter.Generics
    Prettyprinter.MetaDoc
    Prettyprinter.Show
  other-modules:
    Prettyprinter.Combinators.Basic
  hs-source-dirs:
    src
  build-depends:
    , base >= 4.16 && <5
    , bimap
    , bytestring
    , containers
    , dlist
    , pretty-show >= 1.6
    , prettyprinter >= 1.7
    , syb
    , template-haskell >= 2.18
    , text
    , unordered-containers
    , vector