File free.cabal of Package ghc-free

name:          free
category:      Control, Monads
version:       5.1.10
x-revision: 2
license:       BSD3
cabal-version: 1.18
license-file:  LICENSE
author:        Edward A. Kmett
maintainer:    Edward A. Kmett <ekmett@gmail.com>
stability:     provisional
homepage:      http://github.com/ekmett/free/
bug-reports:   http://github.com/ekmett/free/issues
copyright:     Copyright (C) 2008-2015 Edward A. Kmett
tested-with:   GHC == 7.4.2
             , GHC == 7.6.3
             , GHC == 7.8.4
             , GHC == 7.10.3
             , GHC == 8.0.2
             , GHC == 8.2.2
             , GHC == 8.4.4
             , GHC == 8.6.5
             , GHC == 8.8.4
             , GHC == 8.10.7
             , GHC == 9.0.2
             , GHC == 9.2.2
synopsis:      Monads for free
description:
  Free monads are useful for many tree-like structures and domain specific languages.
  .
  If @f@ is a 'Functor' then the free 'Monad' on @f@ is the type
  of trees whose nodes are labeled with the constructors of @f@. The word
  \"free\" is used in the sense of \"unrestricted\" rather than \"zero-cost\":
  @Free f@ makes no constraining assumptions beyond those given by @f@ and the
  definition of 'Monad'. As used here it is a standard term from the
  mathematical theory of adjoint functors.
  .
  Cofree comonads are dual to free monads. They provide convenient ways to talk
  about branching streams and rose-trees, and can be used to annotate syntax
  trees. The cofree comonad can be seen as a stream parameterized by a 'Functor'
  that controls its branching factor.
  .
  More information on free monads, including examples, can be found in the
  following blog posts:
  <http://comonad.com/reader/2008/monads-for-free/>
  <http://comonad.com/reader/2011/free-monads-for-less/>

build-type:    Simple
extra-source-files:
  .ghci
  .gitignore
  .hlint.yaml
  .vim.custom
  README.markdown
  CHANGELOG.markdown
  doc/proof/Control/Comonad/Cofree/*.md
  doc/proof/Control/Comonad/Trans/Cofree/*.md
  examples/free-examples.cabal
  examples/LICENSE
  examples/*.hs
  examples/*.lhs
  include/free-common.h
extra-doc-files:
  examples/*.hs
  examples/*.lhs

source-repository head
  type: git
  location: git://github.com/ekmett/free.git

library
  hs-source-dirs: src
  include-dirs: include
  includes: free-common.h

  default-language:   Haskell2010
  default-extensions: CPP
  other-extensions:
    MultiParamTypeClasses
    FunctionalDependencies
    FlexibleInstances
    UndecidableInstances
    Rank2Types
    GADTs

  build-depends:
    base                 >= 4.5     && < 5,
    comonad              >= 5.0.8   && < 6,
    containers           >= 0.3     && < 0.7,
    distributive         >= 0.5.2   && < 1,
    exceptions           >= 0.10.4  && < 0.11,
    indexed-traversable  >= 0.1.1   && < 0.2,
    semigroupoids        >= 5.3.5   && < 7,
    th-abstraction       >= 0.4.2.0 && < 0.6,
    transformers         >= 0.3     && < 0.7,
    transformers-base    >= 0.4.5.2 && < 0.5,
    template-haskell     >= 2.7.0.0 && < 2.21

  -- GHC-7.8 bundles transformers-0.3,
  -- mtl-2.2.* requires transformers >=0.4
  if impl(ghc >=7.10)
    build-depends:
      mtl               >= 2.2.2 && < 2.4
  else
    build-depends:
      mtl               >= 2.1.3.1 && < 2.4

  -- recent profunctors dropped support for GHCs older than 7.8
  if impl(ghc >=7.8)
    build-depends:
      profunctors >= 5.6.1 && < 6
  else
    build-depends:
      profunctors >= 5.2.2 && < 5.3

  if !impl(ghc >= 8.2)
    build-depends: bifunctors >= 5.5.9 && < 6

  if !impl(ghc >= 8.0)
    build-depends: semigroups >= 0.18.5 && < 1

  -- Ensure Data.Functor.Classes is always available
  if impl(ghc >= 7.10)
    build-depends: transformers >= 0.4.2.0
  else
    build-depends: transformers-compat >= 0.5.1.0 && <0.8

  exposed-modules:
    Control.Applicative.Free
    Control.Applicative.Free.Fast
    Control.Applicative.Free.Final
    Control.Applicative.Trans.Free
    Control.Alternative.Free
    Control.Alternative.Free.Final
    Control.Comonad.Cofree
    Control.Comonad.Cofree.Class
    Control.Comonad.Trans.Cofree
    Control.Comonad.Trans.Coiter
    Control.Monad.Free
    Control.Monad.Free.Ap
    Control.Monad.Free.Church
    Control.Monad.Free.Class
    Control.Monad.Free.TH
    Control.Monad.Trans.Free
    Control.Monad.Trans.Free.Ap
    Control.Monad.Trans.Free.Church
    Control.Monad.Trans.Iter

  other-modules:
    Data.Functor.Classes.Compat

  ghc-options: -Wall

  -- See https://ghc.haskell.org/trac/ghc/wiki/Migration/8.0#base-4.9.0.0
  if impl(ghc >= 8.0)
    ghc-options: -Wcompat -Wnoncanonical-monad-instances

    if !impl(ghc >= 8.8)
      ghc-options: -Wnoncanonical-monadfail-instances
  else
    build-depends: fail == 4.9.*

  if impl(ghc >= 9.0)
    -- these flags may abort compilation with GHC-8.10
    -- https://gitlab.haskell.org/ghc/ghc/-/merge_requests/3295
    ghc-options: -Winferred-safe-imports -Wmissing-safe-haskell-mode

  x-docspec-extra-packages: tagged
openSUSE Build Service is sponsored by