cabal-version: 1.12

-- This file has been generated from package.yaml by hpack version 0.34.2.
--
-- see: https://github.com/sol/hpack
--
-- hash: c410805d5e691767b93cffa33046c105029599cb34a0389840cbf00a85077538

name:           functor-combinators
version:        0.3.3.0
x-revision: 1
synopsis:       Tools for functor combinator-based program design
description:    Tools for working with /functor combinators/: types that take functors (or
                other indexed types) and returns a new functor that "enhances" or "mixes"
                them in some way.  In the process, you can design featureful programs by
                composing smaller "primitives" using basic unversal combinators.
                .
                The main entry point is "Data.Functor.Combinators", but more fine-grained
                functionality and extra combinators (some of them re-implementations for
                compatibility) are available in other modules as well.
                .
                This library does not define new functor combinators for the most part,
                but rather re-exports them from different parts of the Haskell ecosystem
                and provides a uniform interface.
                .
                See the README for a quick overview, and also
                <https://blog.jle.im/entry/functor-combinatorpedia.html> for an in-depth
                dive into the motivation behind functor combinator-driven development,
                examples of the functor combinators in this library, and details about how
                to use these abstractions!
category:       Data
homepage:       https://github.com/mstksg/functor-combinators#readme
bug-reports:    https://github.com/mstksg/functor-combinators/issues
author:         Justin Le
maintainer:     justin@jle.im
copyright:      (c) Justin Le 2019
license:        BSD3
license-file:   LICENSE
tested-with:    GHC >= 8.6
build-type:     Simple
extra-source-files:
    README.md
    CHANGELOG.md

source-repository head
  type: git
  location: https://github.com/mstksg/functor-combinators

library
  exposed-modules:
      Control.Applicative.ListF
      Control.Applicative.Step
      Control.Monad.Freer.Church
      Control.Natural.IsoF
      Data.Functor.Apply.Free
      Data.Functor.Combinator
      Data.Functor.Combinator.Unsafe
      Data.Functor.Contravariant.Conclude
      Data.Functor.Contravariant.Decide
      Data.Functor.Contravariant.Divise
      Data.Functor.Contravariant.Divisible.Free
      Data.Functor.Contravariant.Night
      Data.Functor.Invariant.Day
      Data.Functor.Invariant.Night
      Data.HBifunctor
      Data.HBifunctor.Associative
      Data.HBifunctor.Tensor
      Data.HFunctor
      Data.HFunctor.Chain
      Data.HFunctor.Final
      Data.HFunctor.Interpret
  other-modules:
      Data.HFunctor.Internal
  hs-source-dirs:
      src
  default-extensions: AllowAmbiguousTypes ConstraintKinds DataKinds DefaultSignatures DeriveDataTypeable DeriveFoldable DeriveFunctor DeriveGeneric DeriveTraversable DerivingStrategies EmptyCase ExistentialQuantification ExplicitNamespaces FlexibleContexts FlexibleInstances FunctionalDependencies GADTs GeneralizedNewtypeDeriving InstanceSigs KindSignatures LambdaCase MultiParamTypeClasses OverloadedStrings PatternSynonyms QuantifiedConstraints RankNTypes ScopedTypeVariables StandaloneDeriving TemplateHaskell TupleSections TypeApplications TypeFamilies TypeInType TypeOperators UndecidableInstances UndecidableSuperClasses ViewPatterns
  ghc-options: -Wall -Wcompat -Wredundant-constraints -Werror=incomplete-patterns
  build-depends:
      assoc
    , base >=4.12 && <5
    , bifunctors
    , comonad
    , constraints
    , containers
    , contravariant
    , deriving-compat
    , free
    , invariant
    , kan-extensions
    , mmorph
    , mtl
    , natural-transformation
    , nonempty-containers
    , pointed
    , profunctors
    , semigroupoids
    , sop-core
    , tagged
    , these
    , transformers < 0.6
    , trivial-constraint >=0.5
    , vinyl
  default-language: Haskell2010

test-suite functor-combinators-test
  type: exitcode-stdio-1.0
  main-is: Spec.hs
  other-modules:
      Tests.HBifunctor
      Tests.HFunctor
      Tests.Util
      Paths_functor_combinators
  hs-source-dirs:
      test
  default-extensions: AllowAmbiguousTypes ConstraintKinds DataKinds DefaultSignatures DeriveDataTypeable DeriveFoldable DeriveFunctor DeriveGeneric DeriveTraversable DerivingStrategies EmptyCase ExistentialQuantification ExplicitNamespaces FlexibleContexts FlexibleInstances FunctionalDependencies GADTs GeneralizedNewtypeDeriving InstanceSigs KindSignatures LambdaCase MultiParamTypeClasses OverloadedStrings PatternSynonyms QuantifiedConstraints RankNTypes ScopedTypeVariables StandaloneDeriving TemplateHaskell TupleSections TypeApplications TypeFamilies TypeInType TypeOperators UndecidableInstances UndecidableSuperClasses ViewPatterns
  ghc-options: -Wall -Wcompat -Wredundant-constraints -Werror=incomplete-patterns -threaded -rtsopts -with-rtsopts=-N
  build-depends:
      base >=4.12 && <5
    , bifunctors
    , dependent-sum
    , free
    , functor-combinators
    , hedgehog >=0.6
    , nonempty-containers
    , semigroupoids
    , tasty
    , tasty-hedgehog
    , transformers
    , trivial-constraint >=0.5
  default-language: Haskell2010