packages feed

hedgehog-classes-0.2: hedgehog-classes.cabal

cabal-version: 2.2
name:
  hedgehog-classes
version:
  0.2
synopsis:
  Hedgehog will eat your typeclass bugs
description:
  This library provides Hedgehog properties to ensure
  that typeclass instances adhere to the set of laws
  that they are supposed to. There are other libraries
  that do similar things, such as `genvalidity-hspec` and `checkers`.
  This library differs from other solutions by not introducing any
  new typeclasses that the user needs to learn, and otherwise minimal
  API overhead.
  .
  This library is directly inspired by `quickcheck-classes`.
homepage:
  https://github.com/chessai/hedgehog-classes
bug-reports:
  https://github.com/chessai/hedgehog-classes/issues
license:
  BSD-3-Clause
license-file:
  LICENSE
author:
  chessai
maintainer:
  chessai1996@gmail.com
copyright:
  2019 chessai
category:
  Testing
build-type:
  Simple
extra-doc-files:
    README.md
  , CHANGELOG.md
tested-with: GHC == 8.6.5, GHC == 8.8.1

source-repository head
  type:                git
  location:            https://github.com/chessai/hedgehog-classes.git

flag aeson
  description:
    You can disable the use of the `aeson` package using `-f-aeson`.
    .
    This may be useful for accelerating builds in sandboxes for expert users.
  default: True
  manual: True

-- flag semigroupoids
--   description:
--     You can disable the use of the `semigroupoids` package using `-f-semigroupoids`.
--     .
--     This may be useful for accelerating builds in sandboxes for expert users.
--   default: True
--   manual: True

flag semirings
  description:
    You can disable the use of the `semirings` package using `-f-semirings`.
    .
    This may be useful for accelerating builds in sandboxes for expert users.
  default: True
  manual: True

library
  hs-source-dirs:
    src
  exposed-modules:
    Hedgehog.Classes
  other-modules:
    Hedgehog.Classes.Alternative
    Hedgehog.Classes.Applicative
    Hedgehog.Classes.Arrow
    Hedgehog.Classes.Bifoldable
    Hedgehog.Classes.Bifunctor
    Hedgehog.Classes.Binary
    Hedgehog.Classes.Bitraversable
    Hedgehog.Classes.Bits
    Hedgehog.Classes.Category
    Hedgehog.Classes.Common
      Hedgehog.Classes.Common.ApTrans
      Hedgehog.Classes.Common.Bottom
      Hedgehog.Classes.Common.Compat
      Hedgehog.Classes.Common.Equation
      Hedgehog.Classes.Common.Func
      Hedgehog.Classes.Common.Gen
      Hedgehog.Classes.Common.IO
      Hedgehog.Classes.Common.Laws
      Hedgehog.Classes.Common.Property
      Hedgehog.Classes.Common.PP
    Hedgehog.Classes.Contravariant
    Hedgehog.Classes.Enum
    Hedgehog.Classes.Eq
    Hedgehog.Classes.Foldable
    Hedgehog.Classes.Functor
    Hedgehog.Classes.Generic
    Hedgehog.Classes.Integral
--    Hedgehog.Classes.Ix
    Hedgehog.Classes.Json
    Hedgehog.Classes.Monad
--    Hedgehog.Classes.MonadFix
    Hedgehog.Classes.MonadIO
    Hedgehog.Classes.MonadPlus
    Hedgehog.Classes.MonadZip
    Hedgehog.Classes.Monoid
    Hedgehog.Classes.Ord
    Hedgehog.Classes.Semigroup
    Hedgehog.Classes.Semiring
    Hedgehog.Classes.Show
    Hedgehog.Classes.ShowRead
    Hedgehog.Classes.Storable
    Hedgehog.Classes.Traversable
  build-depends:
    , base >= 4.12 && < 4.14
    , binary >= 0.8 && < 0.9
    , containers >= 0.5 && < 0.7
    , hedgehog >= 1 && < 1.1
    , pretty-show >= 1.9 && < 1.10
    , silently >= 1.2 && < 1.3
    , transformers >= 0.5 && < 0.6
    , wl-pprint-annotated >= 0.0 && < 0.2
  ghc-options:
    -Wall
  default-language:
    Haskell2010
  if flag(aeson)
    build-depends: aeson >= 0.9 && < 1.5
    cpp-options: -DHAVE_AESON
--  if flag(semigroupoids)
--    build-depends: semigroupoids >= 0.5.3.0 && < 0.6.0.0
--    cpp-options: -DHAVE_SEMIGROUPOIDS
  if flag(semirings)
    build-depends: semirings >= 0.2 && < 0.4
    cpp-options: -DHAVE_SEMIRINGS
--  if flag(vector)
--    build-depends: vector >= 0.12.0.0 && < 0.13.0.0
--    cpp-options: -DHAVE_VECTOR

test-suite spec
  type:                exitcode-stdio-1.0
  hs-source-dirs:      test
  main-is:             Spec.hs

  other-modules:       Spec.Alternative
                       Spec.Applicative
                       Spec.Arrow
                       Spec.Bifoldable
                       Spec.Bifunctor
                       Spec.Binary
                       Spec.Bitraversable
                       Spec.Bits
                       Spec.Category
                       Spec.Contravariant
                       Spec.Enum
                       Spec.Eq
                       Spec.Foldable
                       Spec.Functor
                       Spec.Generic
                       Spec.Integral
--                       Spec.Ix
                       Spec.Json
                       Spec.Monad
                       Spec.MonadIO
                       Spec.MonadPlus
                       Spec.MonadZip
                       Spec.Monoid
                       Spec.Ord
                       Spec.Semigroup
                       Spec.Show
                       Spec.ShowRead
                       Spec.Storable
                       Spec.Traversable

  build-depends:       base
                     , aeson
                     , binary
                     , containers
                     , hedgehog
                     , hedgehog-classes

  ghc-options:         -Wall

  default-language:    Haskell2010