packages feed

these-0.8: these.cabal

cabal-version:      >=1.10
name:               these
version:            0.8
synopsis:
  An either-or-both data type & a generalized 'zip with padding' typeclass

homepage:           https://github.com/isomorphism/these
license:            BSD3
license-file:       LICENSE
author:             C. McCann
maintainer:         oleg.grenrus@iki.fi
category:           Data,Control
build-type:         Simple
extra-source-files:
  README.md
  CHANGELOG.md

description:
  This package provides a data type @These a b@ which can hold a value of either
  type or values of each type. This is usually thought of as an "inclusive or"
  type (contrasting @Either a b@ as "exclusive or") or as an "outer join" type
  (contrasting @(a, b)@ as "inner join").
  .
  The major use case of this is provided by the @Align@ class, representing a
  generalized notion of "zipping with padding" that combines structures without
  truncating to the size of the smaller input.
  .
  Also included is @ChronicleT@, a monad transformer based on the Monad instance
  for @These a@, along with the usual monad transformer bells and whistles.
  .
  For a dependency light version, check <https://hackage.haskell.org/package/data-or> package.

tested-with:
  ghc ==7.4.2 || ==7.6.3 || ==7.8.4 || ==7.10.3 || ==8.0.2 || ==8.2.2 || ==8.4.4 || ==8.6.3

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

library
  default-language: Haskell2010
  ghc-options:      -Wall
  exposed-modules:
    Control.Monad.Chronicle
    Control.Monad.Chronicle.Class
    Control.Monad.Trans.Chronicle
    Data.Align
    Data.Align.Indexed
    Data.Align.Key
    Data.Functor.These
    Data.These
    Data.These.Lens
    Data.These.Combinators

  -- ghc boot libs
  build-depends:
      assoc         >=1       && <1.1
    , base          >=4.5.1.0 && <4.13
    , binary        >=0.5.1.0 && <0.10
    , containers    >=0.4.2.1 && <0.7
    , deepseq       >=1.3.0.0 && <1.5
    , mtl           >=2.1.3   && <2.3
    , transformers  >=0.3.0.0 && <0.6

  -- other dependencies
  build-depends:
      aeson                 >=1.4.2.0  && <1.5
    , base-compat           >=0.10.5   && <0.11
    , bifunctors            >=5.5.3    && <5.6
    , data-default-class    >=0.1.2.0  && <0.2
    , hashable              >=1.2.7.0  && <1.3
    , keys                  >=3.12.1   && <3.13
    , lens                  >=4.17     && <4.18
    , QuickCheck            >=2.12.6.1 && <2.13
    , semigroupoids         >=5.3.1    && <5.4
    , transformers-compat   >=0.6.2    && <0.7
    , unordered-containers  >=0.2.8.0  && <0.3
    , vector                >=0.12.0.2 && <0.13
    , vector-instances      >=3.4      && <3.5

  if impl(ghc <7.5)
    build-depends: ghc-prim

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

  -- Ensure Data.Functor.Classes is always available
  if impl(ghc >=7.10)
    build-depends: transformers >=0.4.2.0

test-suite test
  default-language: Haskell2010
  type:             exitcode-stdio-1.0
  main-is:          Tests.hs
  hs-source-dirs:   test
  ghc-options:      -Wall

  -- library constrained dependencies
  build-depends:
      aeson
    , base
    , base-compat
    , bifunctors
    , binary
    , containers
    , hashable
    , lens
    , QuickCheck
    , these
    , transformers
    , unordered-containers
    , vector

  if !impl(ghc >=8.0)
    build-depends: semigroups

  -- additional dependencies
  build-depends:
      quickcheck-instances  >=0.3.15 && <0.4
    , tasty                 >=1.2    && <1.3
    , tasty-quickcheck      >=0.10   && <0.11