packages feed

dep-t-advice-0.6.0.0: dep-t-advice.cabal

cabal-version:       3.0

name:                dep-t-advice
version:             0.6.0.0
synopsis:            Giving good advice to functions in records-of-functions.
description:         
                     Companion to the dep-t package. Easily add behaviour to
                     functions living in a record-of-functions, whatever the
                     number of arguments they might have.
                     
                     In other words: something like the "advices" of
                     aspect-oriented programming.

                     Two flavors of advice are provided: one for environments
                     parameterized by the DepT monad, and a simpler version for
                     environments parameterized by IO and other monads.
-- bug-reports:
license:             BSD-3-Clause
license-file:        LICENSE
author:              Daniel Diaz
maintainer:          diaz_carrete@yahoo.com
category:            Control
extra-source-files:  CHANGELOG.md, README.md

source-repository    head
  type:     git
  location: https://github.com/danidiaz/dep-t-advice.git

common common
  build-depends:       base >=4.10.0.0 && < 5,
                       sop-core ^>= 0.5.0.0,
                       transformers ^>= 0.5.0.0,
                       dep-t ^>= 0.6,
                       mtl ^>= 2.2,
                       unliftio-core ^>= 0.2.0.0,
  default-language:    Haskell2010

common common-tests
  import:              common
  build-depends:       
                       dep-t-advice, 
                       rank2classes       ^>= 1.4.1,
                       -- transformers       ^>= 0.5.0.0,
                       -- mtl                ^>= 2.2,
                       template-haskell,
                       text,

common common-tasty
  import:              common-tests
  hs-source-dirs:      test
  build-depends:       
                       tasty              >= 1.3.1,
                       tasty-hunit        >= 0.10.0.2,

library
  import: common
  exposed-modules:     Dep.Advice
                       Dep.Advice.Basic
                       Dep.SimpleAdvice
                       Dep.SimpleAdvice.Basic
  other-modules:       Dep.SimpleAdvice.Internal    
                        
  hs-source-dirs:      lib 

test-suite tests
  import:              common-tasty
  type:                exitcode-stdio-1.0
  main-is:             tests.hs

test-suite weird-advice-tests
  import:              common-tasty
  type:                exitcode-stdio-1.0
  main-is:             weird-advice-tests.hs
  build-depends:       
                       barbies            ^>= 2.0.2.0

test-suite simple-advice-tests
  import:              common-tasty
  type:                exitcode-stdio-1.0
  main-is:             simple-advice-tests.hs
  build-depends:       
                       barbies            ^>= 2.0.2.0

test-suite tests-has-conversion
  import:              common-tasty
  type:                exitcode-stdio-1.0
  main-is:             tests-has-conversion.hs
  build-depends:       aeson,
                       containers

test-suite synthetic-callstack-tests
  import:              common-tasty
  type:                exitcode-stdio-1.0
  main-is:             synthetic-callstack-tests.hs
  build-depends:       aeson,
                       containers,
                       microlens ^>= 0.4.12.0

-- VERY IMPORTANT for doctests to work: https://stackoverflow.com/a/58027909/1364288
-- http://hackage.haskell.org/package/cabal-doctest
test-suite doctests
  import:              common-tests
  ghc-options:         -threaded
  type:                exitcode-stdio-1.0
  hs-source-dirs:      test
  main-is:             doctests.hs
  build-depends:       
                       doctest            ^>= 0.18 
                       
 -- https://cabal.readthedocs.io/en/3.4/cabal-package.html#benchmarks
benchmark benchmark
  import:              common-tests, 
  type:                exitcode-stdio-1.0
  ghc-options:         -O2
  hs-source-dirs:      benchmark
  main-is:             benchmarks.hs
  build-depends:
                       criterion ^>= 1.5,