File indexed-traversable.cabal of Package ghc-indexed-traversable

cabal-version:      1.12
name:               indexed-traversable
version:            0.1.4
x-revision:         1
build-type:         Simple
license:            BSD2
license-file:       LICENSE
category:           Data
maintainer:         Oleg Grenrus <oleg.grenrus@iki.fi>
author:             Edward Kmett
synopsis:           FunctorWithIndex, FoldableWithIndex, TraversableWithIndex
description:
  This package provides three useful generalizations:
  .
  @
  class Functor f => FunctorWithIndex i f | f -> i where
  \  imap :: (i -> a -> b) -> f a -> f b
  @
  .
  @
  class Foldable f => FoldableWithIndex i f | f -> i where
  \  ifoldMap :: Monoid m => (i -> a -> m) -> f a -> m
  @
  .
  @
  class (FunctorWithIndex i t, FoldableWithIndex i t, Traversable t) => TraversableWithIndex i t | t -> i where
  \  itraverse :: Applicative f => (i -> a -> f b) -> t a -> f (t b)
  @
  .
  This package contains instances for types in GHC boot libraries.
  For some additional instances see [indexed-traversable-instances](https://hackage.haskell.org/package/indexed-traversable-instances).
  .
  The [keys](https://hackage.haskell.org/package/keys) package provides similar functionality,
  but uses (associated) @TypeFamilies@ instead of @FunctionalDependencies@.

extra-source-files: Changelog.md
tested-with:
  GHC ==8.6.5
   || ==8.8.4
   || ==8.10.7
   || ==9.0.2
   || ==9.2.8
   || ==9.4.8
   || ==9.6.6
   || ==9.8.4
   || ==9.10.1
   || ==9.12.1

source-repository head
  type:     git
  location: https://github.com/haskellari/indexed-traversable
  subdir:   indexed-traversable

library
  default-language: Haskell2010
  hs-source-dirs:   src
  other-modules:
    CoerceCompat
    GhcList
    WithIndex

  exposed-modules:
    Data.Foldable.WithIndex
    Data.Foldable1.WithIndex
    Data.Functor.WithIndex
    Data.Traversable.WithIndex

  build-depends:
      array         >=0.3.0.2 && <0.6
    , base          >=4.12    && <4.22
    , containers    >=0.6.0.1 && <0.8
    , transformers  >=0.5.6.0 && <0.7

  if !impl(ghc >=9.6)
    build-depends: foldable1-classes-compat >=0.1 && <0.2
openSUSE Build Service is sponsored by