cabal-version:       2.4
name:                validation-selective
version:             0.2.0.0
x-revision: 4
synopsis:            Lighweight pure data validation based on Applicative and Selective functors
description:
    Lighweight pure data validation based on Applicative and Selective
    functors. The library builds validation interface around the
    following data type:
    .
    @
    __data__ Validation e a
    \    = Failure e
    \    | Success a
    @
    .

homepage:            https://github.com/kowainik/validation-selective
bug-reports:         https://github.com/kowainik/validation-selective/issues
license:             MPL-2.0
license-file:        LICENSE
author:              Dmitrii Kovanikov, Veronika Romashkina
maintainer:          Kowainik <xrom.xkov@gmail.com>
copyright:           2020-2023 Kowainik
category:            Validation, Selective, Data
build-type:          Simple
extra-doc-files:     README.md
                     CHANGELOG.md
tested-with:
  GHC == 9.6.2
  GHC == 9.4.4
  GHC == 9.2.7
  GHC == 9.0.2
  GHC == 8.10.7
  GHC == 8.8.4
  GHC == 8.6.5

source-repository head
  type:                git
  location:            https://github.com/kowainik/validation-selective.git

common common-options
  build-depends:       base >= 4.12 && < 4.21

  ghc-options:         -Wall
                       -Wcompat
                       -Widentities
                       -Wincomplete-uni-patterns
                       -Wincomplete-record-updates
                       -Wredundant-constraints
                       -fhide-source-paths
                       -Wmissing-export-lists
                       -Wpartial-fields
  if impl(ghc >= 8.8)
    ghc-options:       -Wmissing-deriving-strategies
  if impl(ghc >= 8.10)
    ghc-options:       -Wunused-packages
  if impl(ghc >= 9.0)
    ghc-options:       -Winvalid-haddock
  if impl(ghc >= 9.2)
    ghc-options:       -Wredundant-bang-patterns
                       -Woperator-whitespace

  default-language:    Haskell2010
  default-extensions:  ConstraintKinds
                       DeriveGeneric
                       DerivingStrategies
                       GeneralizedNewtypeDeriving
                       InstanceSigs
                       KindSignatures
                       LambdaCase
                       OverloadedStrings
                       RecordWildCards
                       ScopedTypeVariables
                       StandaloneDeriving
                       TupleSections
                       TypeApplications
                       ViewPatterns

library
  import:              common-options
  hs-source-dirs:      src
  exposed-modules:     Validation
                         Validation.Combinators
  build-depends:       deepseq   >= 1.4.3.0   && < 1.6
                     , selective >= 0.3       && < 0.8

test-suite validation-selective-test
  import:              common-options
  type:                exitcode-stdio-1.0
  hs-source-dirs:      test
  main-is:             Spec.hs
  other-modules:       Test.Gen
                       Test.Laws
                       Test.Properties
  build-depends:       validation-selective
                     , hedgehog         >= 1.0      && < 1.5
                     , hspec            >= 2.7.1    && < 3
                     , hspec-hedgehog   >= 0.0.1.1  && < 0.2
                     , selective
                     , text             >= 1.2.3    && < 2.2
  ghc-options:         -threaded
                       -rtsopts
                       -with-rtsopts=-N

test-suite validation-selective-doctest
  import:              common-options
  type:                exitcode-stdio-1.0
  hs-source-dirs:      test
  main-is:             Doctest.hs
  build-depends:       doctest >= 0.16 && < 1
  ghc-options:         -threaded