packages feed

variant-1.0: variant.cabal

cabal-version:       2.4
name:                variant
version:             1.0
synopsis:            Variant and EADT
license:             BSD-3-Clause
license-file:        LICENSE
author:              Sylvain Henry
maintainer:          sylvain@haskus.fr
homepage:            https://www.haskus.org
copyright:           Sylvain Henry 2024
category:            System
build-type:          Simple

description:
   Variant (extensible sum type) and EADT (extensible recursive sum type)
   datatypes.

source-repository head
  type: git
  location: git://github.com/haskus/variant.git

flag unliftio
  Description: Enable MonadUnliftIO instance
  Manual: True
  Default: True

library
  exposed-modules:
    Data.Variant
    Data.Variant.ContFlow
    Data.Variant.VEither
    Data.Variant.Excepts
    Data.Variant.Syntax
    Data.Variant.Tuple
    Data.Variant.Types
    Data.Variant.VariantF
    Data.Variant.Functor
    Data.Variant.EADT
    Data.Variant.EADT.TH
    Data.Variant.EGADT

  other-modules:

  build-depends:       
     base                      >= 4.9 && < 5.0
   , transformers
   , deepseq
   , exceptions                >= 0.9
   , template-haskell
   , mtl                       >= 2.2
   , recursion-schemes

  if flag(unliftio)
    build-depends: unliftio-core >= 0.2
    cpp-options: -DENABLE_UNLIFTIO

  ghc-options:          -Wall
  default-language:     Haskell2010
  hs-source-dirs:       src/lib

test-suite tests
   type:                exitcode-stdio-1.0
   main-is:             Main.hs
   hs-source-dirs:      src/tests
   ghc-options:         -Wall -threaded
   default-language:    Haskell2010
   other-modules:
         Variant
      ,  EADT

   build-depends:
         base                    >= 4.9 && < 5.0
      ,  tasty                   >= 0.11
      ,  tasty-quickcheck        >= 0.8
      ,  variant

benchmark bench
   type:                exitcode-stdio-1.0
   main-is:             Main.hs
   hs-source-dirs:      src/bench
   ghc-options:         -Wall -threaded
   default-language:    Haskell2010
   build-depends:
         base                    >= 4.9 && < 5.0
      ,  variant
      ,  criterion
      ,  QuickCheck
      ,  deepseq