packages feed

compactable-0.2.0.0: compactable.cabal

name:                compactable
version:             0.2.0.0
synopsis:            A typeclass for structures which can be catMaybed, filtered, and partitioned.
description:         This provides polymorphic implementations for filter, compact (catMaybes), and separate. It allows for higher performance implementations to be used in place of defaults for all data structures, and endeavors to centerally document those implementations. Compactable aims to be as general and unconstrained as possible, providing instances for non-Functors like Set, as well as some Contravariants (though not published here). Compactable fully subsumes Data.Witherable, offers more laws, and is more general.
license:             BSD3
license-file:        LICENSE
author:              Isaac Shapira
maintainer:          fresheyeball@protonmail.com
category:            Control
build-type:          Simple
extra-source-files:  ChangeLog.md
cabal-version:       >=1.10
tested-with:         GHC == 8.6.5, GHC == 8.8.4, GHC == 8.10.7, GHC == 9.0.1

source-repository head
  type: git
  location: https://gitlab.com/fresheyeball/Compactable.git

library
  exposed-modules:
      Control.Functor.Compactable
    , Control.Functor.Dichotomous
    , Control.Functor.Elastic
    , Control.Functor.Expansive

  ghc-options:
    -Wall
    -Wincomplete-record-updates
    -Wincomplete-uni-patterns
    -Wredundant-constraints

  build-depends:
      base >= 4.9 && < 4.16
    , containers
    , transformers
    , vector
    , aeson
    , base-compat
    , bifunctors
    , contravariant
    , data-default-class
    , deepseq
    , hashable
    , keys
    , lens
    , these
    , QuickCheck
    , semigroupoids
    , transformers-compat
    , unordered-containers
    , vector
    , vector-instances

  hs-source-dirs:      src
  default-language:    Haskell2010


test-suite props
  type: exitcode-stdio-1.0
  other-modules:
     Core
   , CompactableSpec
   , ElasticSpec
   , ExpansiveSpec
   , DichotomousSpec
  main-is: Main.hs
  ghc-options:
    -threaded
    -rtsopts
    -with-rtsopts=-N +RTS -H2G -A32M -RTS
  default-language:    Haskell2010
  hs-source-dirs:
    test
  build-depends:
    base
    , QuickCheck
    , sydtest
    , sydtest-discover
    , genvalidity
    , genvalidity-sydtest
    , compactable
    , containers
    , vector
    , these