name:               boring
version:            0.2
synopsis:           Boring and Absurd types
description:
  * @Boring@ types are isomorphic to @()@.
  . 
  * @Absurd@ types are isomorphic to @Void@.
  .
  See [What does () mean in Haskell -answer by Conor McBride](https://stackoverflow.com/questions/33112439/what-does-mean-in-haskell/33115522#33115522)

homepage:           https://github.com/phadej/boring
bug-reports:        https://github.com/phadej/boring/issues
license:            BSD3
license-file:       LICENSE
author:             Oleg Grenrus <oleg.grenrus@iki.fi>
maintainer:         Oleg.Grenrus <oleg.grenrus@iki.fi>
copyright:          (c) 2017-2021 Oleg Grenrus
category:           Data
build-type:         Simple
extra-source-files: ChangeLog.md
cabal-version:      >=1.10
tested-with:
  GHC ==7.4.2
   || ==7.6.3
   || ==7.8.4
   || ==7.10.3
   || ==8.0.2
   || ==8.2.2
   || ==8.4.4
   || ==8.6.5
   || ==8.8.4
   || ==8.10.4
   || ==9.0.1

source-repository head
  type:     git
  location: https://github.com/phadej/boring.git
  subdir:   boring

flag tagged
  description:
    You can disable the use of the `tagged` package using `-f-tagged`.
    .
    Disabling this is an unsupported configuration, but it may be useful for accelerating builds in sandboxes for expert users.

  default:     True
  manual:      True

library
  exposed-modules:  Data.Boring
  build-depends:
      base          >=4.5 && <4.16
    , transformers  >=0.3 && <0.6

  if impl(ghc <7.6)
    build-depends: ghc-prim
  
  if !impl(ghc >=7.8)
    build-depends: type-equality >=1 && <1.1

  if !impl(ghc >=7.10)
    build-depends: void >=0.7.3 && <0.8

  if !impl(ghc >=8.0)
    build-depends:
        semigroups           >=0.18.5 && <0.20
      , transformers-compat  >=0.5    && <0.7

  if flag(tagged) || !impl(ghc >=7.8)
    build-depends: tagged >=0.8.6 && <0.9

  other-extensions:
    CPP
    DefaultSignatures
    FlexibleContexts
    GADTs
    Trustworthy
    TypeOperators

  hs-source-dirs:   src
  default-language: Haskell2010
