packages feed

constrained-0.1: constrained.cabal

cabal-version:
  2.0
name:
  constrained
version:
  0.1
synopsis:
  Generalization of standard Functor, Foldable, and Traversable classes
description:
  This package generalizes familiar 'Functor', 'Foldable' and 'Traversable'
  for the case when a functorial type of kind Type -> Type imposes certain constraints
  on what can be put in. E.g. 'Set' can only deal with types that are an instance of 'Ord'
  and therefore cannot be made an instance of 'Functor'. But it can be made
  an instance of a constrained functor with a similar interface that this
  package provides.
license:
  BSD2
license-file:
  LICENSE
author:
  Sergey Vinokurov
maintainer:
  Sergey Vinokurov <serg.foo@gmail.com>
tested-with:
  GHC == 8.2.2, GHC == 8.4.4, GHC == 8.6.5, GHC == 8.8.1
category: Data

build-type:
  Simple

library
  exposed-modules:
    Data.Constrained
    Data.Foldable.Constrained
    Data.Functor.Constrained
    Data.Traversable.Constrained
  hs-source-dirs:
    src
  build-depends:
    -- -- 7.4.1 instroduced ConstraintKind - base 4.5
    -- base >= 4.5
    -- 4.8 introduced extra functions in Foldable
    base >= 4.8 && < 5
  default-language:
    Haskell2010
  ghc-options:
    -Wall
    -fwarn-name-shadowing
    -fno-warn-type-defaults
  if impl(ghc >= 8.0)
    ghc-options:
      -Wall-missed-specialisations
      -Wcompat
      -Whi-shadowing
      -Widentities
      -Wincomplete-record-updates
      -Wincomplete-uni-patterns
      -Wmissing-exported-signatures
  if impl(ghc >= 8.2)
    ghc-options:
      -Wcpp-undef
      -Wmissing-home-modules
      -Wunbanged-strict-patterns