packages feed

hw-polysemy-0.2.0.0: hw-polysemy.cabal

cabal-version:          3.4
name:                   hw-polysemy
version:                0.2.0.0
synopsis:               Opinionated polysemy library
description:            Opinionated polysemy library.
license:                Apache-2.0
license-file:           LICENSE
author:                 John Ky
maintainer:             newhoggy@gmail.com
copyright:              2024 John Ky
category:               Development
build-type:             Simple
extra-doc-files:        CHANGELOG.md
extra-source-files:     README.md

source-repository head
  type:                 git
  location:             https://github.com/haskell-works/hw-polysemy

common base                       { build-depends: base                       >= 4.18       && < 5      }

common bytestring                 { build-depends: bytestring                                  < 0.13   }
common contravariant              { build-depends: contravariant                               < 1.6    }
common Diff                       { build-depends: Diff                                        < 0.6    }
common directory                  { build-depends: directory                                   < 1.4    }
common filepath                   { build-depends: filepath                                    < 1.6    }
common ghc-prim                   { build-depends: ghc-prim                                    < 0.12   }
common hedgehog                   { build-depends: hedgehog                                    < 1.5    }
common polysemy                   { build-depends: polysemy                                    < 2      }
common polysemy-log               { build-depends: polysemy-log                                < 0.11   }
common polysemy-plugin            { build-depends: polysemy-plugin                             < 0.5    }
common polysemy-time              { build-depends: polysemy-time                               < 0.7    }
common process                    { build-depends: process                                     < 1.7    }
common stm                        { build-depends: stm                                         < 2.6    }
common tasty                      { build-depends: tasty                                       < 1.6    }
common tasty-hedgehog             { build-depends: tasty-hedgehog                              < 1.5    }
common text                       { build-depends: text                                        < 3      }
common time                       { build-depends: time                                        < 2      }

common hw-polysemy                { build-depends: hw-polysemy                                          }
common hw-polysemy-core           { build-depends: hw-polysemy:core                                     }
common hw-polysemy-hedgehog       { build-depends: hw-polysemy:hedgehog                                 }

common project-config
  import:               polysemy,
                        polysemy-plugin,
  default-extensions:   BlockArguments
                        DataKinds
                        FlexibleContexts
                        FlexibleInstances
                        LambdaCase
                        NoImplicitPrelude
                        OverloadedStrings
                        TypeApplications
  ghc-options:          -Wall
                        -fplugin=Polysemy.Plugin

library core
  import:               base, project-config,
                        bytestring,
                        contravariant,
                        directory,
                        filepath,
                        ghc-prim,
                        hedgehog,
                        polysemy,
                        polysemy-log,
                        polysemy-time,
                        process,
                        stm,
                        text,
                        time,
  visibility:           public
  exposed-modules:      HaskellWorks.Polysemy
                        HaskellWorks.Polysemy.Control.Concurrent
                        HaskellWorks.Polysemy.Control.Concurrent.QSem
                        HaskellWorks.Polysemy.Control.Concurrent.STM
                        HaskellWorks.Polysemy.Control.Concurrent.STM.TVar
                        HaskellWorks.Polysemy.Data.ByteString
                        HaskellWorks.Polysemy.Data.ByteString.Lazy
                        HaskellWorks.Polysemy.Data.ByteString.Strict
                        HaskellWorks.Polysemy.Data.Either
                        HaskellWorks.Polysemy.Data.Text
                        HaskellWorks.Polysemy.Data.Text.Lazy
                        HaskellWorks.Polysemy.Data.Text.Strict
                        HaskellWorks.Polysemy.Error
                        HaskellWorks.Polysemy.Prelude
                        HaskellWorks.Polysemy.String
                        HaskellWorks.Polysemy.System.Directory
                        HaskellWorks.Polysemy.System.Environment
                        HaskellWorks.Polysemy.System.IO
                        HaskellWorks.Polysemy.System.Process
  hs-source-dirs:       core
  default-language:     GHC2021

library hedgehog
  import:               base, project-config,
                        bytestring,
                        contravariant,
                        Diff,
                        filepath,
                        ghc-prim,
                        hedgehog,
                        hw-polysemy-core,
                        polysemy,
                        polysemy-log,
                        polysemy-time,
                        text,
  visibility:           public
  exposed-modules:      HaskellWorks.Polysemy.Hedgehog
                        HaskellWorks.Polysemy.Hedgehog.Assert
                        HaskellWorks.Polysemy.Hedgehog.Effect.Hedgehog
                        HaskellWorks.Polysemy.Hedgehog.Effect.Hedgehog.Internal
                        HaskellWorks.Polysemy.Hedgehog.Effect.Log
                        HaskellWorks.Polysemy.Hedgehog.Eval
                        HaskellWorks.Polysemy.Hedgehog.Golden
                        HaskellWorks.Polysemy.Hedgehog.Jot
                        HaskellWorks.Polysemy.Hedgehog.Property
  hs-source-dirs:       hedgehog
  default-language:     GHC2021

library
  import:               base, project-config,
                        hw-polysemy-core,
                        hw-polysemy-hedgehog,
  reexported-modules:   HaskellWorks.Polysemy,
                        HaskellWorks.Polysemy.Control.Concurrent,
                        HaskellWorks.Polysemy.Control.Concurrent.QSem,
                        HaskellWorks.Polysemy.Control.Concurrent.STM,
                        HaskellWorks.Polysemy.Control.Concurrent.STM.TVar,
                        HaskellWorks.Polysemy.Data.ByteString,
                        HaskellWorks.Polysemy.Data.ByteString.Lazy,
                        HaskellWorks.Polysemy.Data.ByteString.Strict,
                        HaskellWorks.Polysemy.Data.Either,
                        HaskellWorks.Polysemy.Data.Text,
                        HaskellWorks.Polysemy.Data.Text.Lazy,
                        HaskellWorks.Polysemy.Data.Text.Strict,
                        HaskellWorks.Polysemy.Error,
                        HaskellWorks.Polysemy.Hedgehog,
                        HaskellWorks.Polysemy.Hedgehog.Assert,
                        HaskellWorks.Polysemy.Hedgehog.Effect.Hedgehog,
                        HaskellWorks.Polysemy.Hedgehog.Effect.Hedgehog.Internal,
                        HaskellWorks.Polysemy.Hedgehog.Effect.Log,
                        HaskellWorks.Polysemy.Hedgehog.Eval,
                        HaskellWorks.Polysemy.Hedgehog.Golden,
                        HaskellWorks.Polysemy.Hedgehog.Jot,
                        HaskellWorks.Polysemy.Hedgehog.Property,
                        HaskellWorks.Polysemy.Prelude,
                        HaskellWorks.Polysemy.String,
                        HaskellWorks.Polysemy.System.Directory,
                        HaskellWorks.Polysemy.System.Environment,
                        HaskellWorks.Polysemy.System.IO,
                        HaskellWorks.Polysemy.System.Process,
  default-language:     GHC2021

test-suite hw-polysemy-test
  import:               base, project-config,
                        filepath,
                        hw-polysemy,
                        polysemy,
                        polysemy-log,
                        tasty-hedgehog,
                        tasty,
                        text,
  default-language:     GHC2021
  type:                 exitcode-stdio-1.0
  build-tool-depends:   tasty-discover:tasty-discover
  hs-source-dirs:       test
  main-is:              Main.hs
  other-modules:        HaskellWorks.Polysemy.HedgehogSpec
  ghc-options:          -threaded -rtsopts -with-rtsopts=-N -with-rtsopts=-T