packages feed

semialign-optics-1.1: semialign-optics.cabal

cabal-version:      >=1.10
name:               semialign-optics
version:            1.1
synopsis:           SemialignWithIndex, i.e. izipWith and ialignWith
homepage:           https://github.com/isomorphism/these
license:            BSD3
license-file:       LICENSE
author:             C. McCann, Oleg Grenrus
maintainer:         Oleg Grenrus <oleg.grenrus@iki.fi>
category:           Data, These
build-type:         Simple
extra-source-files: CHANGELOG.md
description:
  This package provides @SemialignWithIndex@ with two members
  .
  @
  class (FunctorWithIndex i f, Semialign f) => SemialignWithIndex i f | f -> i where
  \    ialignWith :: (i -> These a b -> c) -> f a -> f b -> f c
  @
  .
  @
  class (SemialignWithIndex i f, Zip f) => ZipWithIndex i f | f -> i where
  \    izipWith   :: (i -> a -> b -> c)    -> f a -> f b -> f c
  @
  .
  Superclass @FunctorWithIndex@ is from @optics-extra@ package.
  See https://hackage.haskell.org/package/semialign-indexed for @lens@ variant.

tested-with:
    GHC ==8.0.2 || ==8.2.2 || ==8.4.4 || ==8.6.5 || ==8.8.1
  , GHCJS ==8.4

source-repository head
  type:     git
  location: https://github.com/isomorphism/these.git

library
  default-language: Haskell2010
  ghc-options:      -Wall

  if impl(ghc >=8.0)
    ghc-options: -Wno-trustworthy-safe

  hs-source-dirs:   src
  exposed-modules:  Data.Semialign.Indexed

  -- ghc boot libs
  build-depends:
      base        >=4.5.1.0 && <4.14
    , containers  >=0.4.2.1 && <0.7

  build-depends:
      semialign  >=1.1 && <1.2
    , these      >=1   && <1.1

  -- other dependencies
  build-depends:
      hashable              >=1.2.7.0  && <1.4
    , optics-extra          >=0.2      && <0.3
    , unordered-containers  >=0.2.8.0  && <0.3
    , vector                >=0.12.0.2 && <0.13

  -- base shims
  if !impl(ghc >=8.0)
    build-depends:
        transformers         >=0.3.0.0 && <0.6
      , transformers-compat  >=0.6.5   && <0.7