name: polysemy version: 0.6.0.0 github: "isovector/polysemy" license: BSD3 author: "Sandy Maguire" maintainer: "sandy@sandymaguire.me" copyright: "2019 Sandy Maguire" extra-source-files: - README.md - ChangeLog.md synopsis: Higher-order, low-boilerplate, zero-cost free monads. category: Language description: Please see the README on GitHub at dependencies: - base >= 4.9 && < 5 - containers >= 0.5 && < 0.7 - mtl >= 2.2.2 && < 3 - syb >= 0.7 && < 0.8 - template-haskell >= 2.12.0.0 && < 3 - th-abstraction >= 0.3.1.0 && < 0.4 - transformers >= 0.5.2.0 && < 0.6 - first-class-families >= 0.5.0.0 && < 0.6 - unagi-chan >= 0.4.0.0 && < 0.5 - async >= 2.2 && < 3 - type-errors >= 0.2.0.0 default-extensions: - DataKinds - DeriveFunctor - FlexibleContexts - GADTs - LambdaCase - PolyKinds - RankNTypes - ScopedTypeVariables - StandaloneDeriving - TypeApplications - TypeOperators - TypeFamilies - UnicodeSyntax when: - condition: impl(ghc < 8.6) default-extensions: - MonadFailDesugaring - TypeInType - condition: impl(ghc >= 8.7) dependencies: - loopbreaker >= 0.1 && < 0.2 flags: dump-core: description: Dump HTML for the core generated by GHC during compilation default: False manual: True error-messages: description: Provide custom error messages default: True manual: True library: ghc-options: -Wall source-dirs: src other-modules: Polysemy.Internal.PluginLookup when: - condition: flag(dump-core) dependencies: - dump-core ghc-options: - -fplugin=DumpCore - -fplugin-opt=DumpCore:core-html - condition: impl(ghc < 8.2.2) dependencies: - unsupported-ghc-version > 1 && < 1 # We use this plugin to get to more agressive inlining without need for # explicit "loopbreakers" in function definitions all over ther codebase # --- sadly it can only work on newer versions of GHC currently - condition: impl(ghc >= 8.7) ghc-options: - -fplugin=Loopbreaker - condition: flag(error-messages) then: # dummy value because cabal is stupid cpp-options: -DCABAL_SERIOUSLY_CMON_MATE else: cpp-options: -DNO_ERROR_MESSAGES tests: polysemy-test: main: Main.hs source-dirs: test ghc-options: - -threaded - -rtsopts - -with-rtsopts=-N build-tools: - hspec-discover >= 2.0 dependencies: - polysemy - inspection-testing >= 0.4.2 && < 0.5 - hspec >= 2.6.0 && < 3 - doctest >= 0.16.0.1 && < 0.17 benchmarks: polysemy-bench: source-dirs: bench main: countDown.hs dependencies: - criterion - free - freer-simple - mtl - polysemy