cabal-version:       2.4
name:                co-log-core
version:             0.2.1.0
synopsis:            Composable Contravariant Comonadic Logging Library
description:
    This package provides core types and functions to work with the @LogAction@ data type which is both simple and powerful.
    .
    @
    __newtype__ LogAction m msg = LogAction
    \    { unLogAction :: msg -> m ()
    \    }
    @
    .
    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)
    .
    See the following packages for different implementations based on @co-log-core@:
    .
    * [co-log](http://hackage.haskell.org/package/co-log): taggless final implementations.
    * [co-log-polysemy](http://hackage.haskell.org/package/co-log-polysemy): extensible
      effects implementation based on @polysemy@.

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:           2018-2020 Kowainik
category:            Logging, Contravariant, Comonad
build-type:          Simple
stability:           stable
extra-doc-files:     CHANGELOG.md
                     README.md
tested-with:         GHC == 8.2.2
                     GHC == 8.4.4
                     GHC == 8.6.5
                     GHC == 8.8.2

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

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

  ghc-options:         -Wall
                       -Wincomplete-uni-patterns
                       -Wincomplete-record-updates
                       -Wcompat
                       -Widentities
                       -Wredundant-constraints
                       -fhide-source-paths
                       -freverse-errors
  if impl(ghc >= 8.8.1)
    ghc-options:       -Wmissing-deriving-strategies
                       -Werror=missing-deriving-strategies

  default-language:    Haskell2010
  default-extensions:  ConstraintKinds
                       DeriveGeneric
                       DerivingStrategies
                       GeneralizedNewtypeDeriving
                       InstanceSigs
                       LambdaCase
                       OverloadedStrings
                       RecordWildCards
                       ScopedTypeVariables
                       StandaloneDeriving
                       TupleSections
                       TypeApplications
                       ViewPatterns

library
  import:              common-options
  hs-source-dirs:      src
  exposed-modules:     Colog.Core
                           Colog.Core.Action
                           Colog.Core.Class
                           Colog.Core.Severity
                           Colog.Core.IO

test-suite doctest
  import:               common-options
  type:                 exitcode-stdio-1.0
  hs-source-dirs:       test
  main-is:              Doctests.hs
  build-depends:        doctest ^>= 0.16.0
                      , Glob ^>= 0.10.0