packages feed

indexed-traversable-0.1.5: indexed-traversable.cabal

cabal-version:      1.12
name:               indexed-traversable
version:            0.1.5
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.4
   || ==9.14.1

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

flag base-ge-4-18
  description: @base >=4.18@ (GHC-9.6)
  default:     True
  manual:      False

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.23
    , containers    >=0.6.0.1 && <0.9
    , transformers  >=0.5.6.0 && <0.7

  if !flag(base-ge-4-18)
    build-depends: foldable1-classes-compat >=0.1 && <0.2

  if flag(base-ge-4-18)
    build-depends: base >=4.18

  else
    build-depends: base <4.18