packages feed

co-log-polysemy-0.0.1.2: co-log-polysemy.cabal

cabal-version:       2.4
name:                co-log-polysemy
version:             0.0.1.2
synopsis:            Composable Contravariant Comonadic Logging Library
description:
    Implementation of the [co-log](http://hackage.haskell.org/package/co-log-core)
    logging based on the [polysemy](http://hackage.haskell.org/package/polysemy)
    extensible effects library.
    .
    The ideas behind this package are described in the following blog post:
    .
    * [co-log: Composable Contravariant Combinatorial Comonadic Configurable Convenient Logging](https://kowainik.github.io/posts/2018-09-25-co-log)
    .
    For the taggless final implementation of the @co-log@ ideas se the following package:
    .
    * [co-log](http://hackage.haskell.org/package/co-log)

homepage:            https://github.com/kowainik/co-log
bug-reports:         https://github.com/kowainik/co-log/issues
license:             MPL-2.0
license-file:        LICENSE
author:              Dmitrii Kovanikov
maintainer:          Kowainik <xrom.xkov@gmail.com>
copyright:           2019-2020 Kowainik
category:            Logging, Contravariant, Comonad, Effects
build-type:          Simple
stability:           provisional
extra-doc-files:     CHANGELOG.md
                     README.md
tested-with:         GHC == 8.4.4
                     GHC == 8.6.5
                     GHC == 8.8.3
                     GHC == 8.10.1

source-repository head
  type:                git
  location:            https://github.com/kowainik/co-log.git

common common-options
  build-depends:       base >= 4.10.1.0 && < 4.15

  -- 8.2 lacks <>
  if impl(ghc < 8.4)
    buildable: False

  ghc-options:         -O2
                       -Wall
                       -Wcompat
                       -Widentities
                       -Wincomplete-uni-patterns
                       -Wincomplete-record-updates
                       -Wredundant-constraints
  if impl(ghc >= 8.2)
    ghc-options:       -fhide-source-paths
  if impl(ghc >= 8.4)
    ghc-options:       -Wmissing-export-lists
                       -Wpartial-fields
  if impl(ghc >= 8.8)
    ghc-options:       -Wmissing-deriving-strategies
  if impl(ghc >= 8.10)
    ghc-options:       -Wunused-packages

  -- special options to make @polysemy@ fast
  if impl(ghc >= 8.6)
    ghc-options:       -flate-specialise
                       -fspecialise-aggressively

  default-language:    Haskell2010
  default-extensions:  ConstraintKinds
                       DataKinds
                       DeriveGeneric
                       FlexibleContexts
                       GADTs
                       GeneralizedNewtypeDeriving
                       KindSignatures
                       LambdaCase
                       OverloadedStrings
                       RecordWildCards
                       ScopedTypeVariables
                       StandaloneDeriving
                       TupleSections
                       TypeApplications
                       TypeOperators
                       ViewPatterns

library
  import:              common-options
  hs-source-dirs:      src
  exposed-modules:     Colog.Polysemy
                           Colog.Polysemy.Effect

  build-depends:       co-log-core ^>= 0.2.0.0
                     , polysemy >= 1.2.0.0 && < 1.4

executable play-colog-poly
  import:              common-options
  hs-source-dirs:      example
  main-is:             Main.hs

  build-depends:       co-log-core
                     , co-log-polysemy
                     , polysemy

  ghc-options:         -threaded
                       -rtsopts
                       -with-rtsopts=-N