cabal-version: 2.2

name:           list-tuple
version:        0.1.3.0
synopsis:       List-like operations for tuples
description:    List-like operations for tuples
category:       Data
homepage:       https://github.com/kakkun61/tuple
bug-reports:    https://github.com/kakkun61/tuple/issues
author:         Kazuki Okamoto
maintainer:     kazuki.okamoto@kakkun61.com
copyright:      2019 Kazuki Okamoto
license:        Apache-2.0
license-file:   LICENSE
build-type:     Custom

extra-source-files:
    README.md
    ChangeLog.md
    template/List.hs
    template/ListItem.hs
    template/ListAt.hs

source-repository head
  type: git
  location: https://github.com/kakkun61/tuple

common common
  build-depends:    base >=4.10 && <4.15
  ghc-options:      -Wall
                    -Wcompat
                    -Wincomplete-uni-patterns
                    -Wincomplete-record-updates
                    -Wmonomorphism-restriction
                    -Wmissing-exported-signatures
                    -Wmissing-home-modules
                    -Wmissing-import-lists
                    -Widentities
                    -Wredundant-constraints
                    -Wno-name-shadowing
                    -Wno-unticked-promoted-constructors
  if impl(ghc >= 8.4.0)
    ghc-options:    -Wmissing-export-lists
                    -Wpartial-fields
  default-language: Haskell2010

custom-setup
  setup-depends:
      Cabal
    , base
    , directory

library
  import:          common
  exposed-modules: Data.Tuple.List
                   Data.Tuple.List.Identity
                   Data.Tuple.List.OneTuple
                   Data.Tuple.List.Only
  autogen-modules: Data.Tuple.List
  hs-source-dirs:  src
  build-depends:   OneTuple >=0.2 && <0.3,
                   Only >=0.1 && <0.2,
                   single-tuple >=0.1 && <0.2
  if impl(ghc >= 8.4.0)
    ghc-options:   -Wmissing-export-lists

test-suite test
  import:             common
  type:               exitcode-stdio-1.0
  main-is:            Spec.hs
  other-modules:      Data.Tuple.List.IdentitySpec
                      Data.Tuple.ListSpec
  hs-source-dirs:     test
  ghc-options:        -threaded
                      -rtsopts
                      -with-rtsopts=-N
  build-depends:      list-tuple,
                      Only,
                      deepseq,
                      hspec,
                      should-not-typecheck,
                      single-tuple,
                      text
  build-tool-depends: hspec-discover:hspec-discover