packages feed

exinst-0.4: exinst.cabal

name:                exinst
version:             0.4
author:              Renzo Carbonara
maintainer:          renzoλcarbonara.com.ar
copyright:           Renzo Carbonara 2015-2017
license:             BSD3
license-file:        LICENSE.txt
extra-source-files:  README.md CHANGELOG.md
category:            Data
build-type:          Simple
cabal-version:       >=1.18
synopsis:            Recover type indexes and instances for your existentialized types.
homepage:            https://github.com/k0001/exinst
bug-reports:         https://github.com/k0001/exinst/issues


library
  hs-source-dirs: src/lib
  default-language: Haskell2010
  exposed-modules:
      Exinst
  other-modules:
      Exinst.Internal
      Exinst.Internal.Product
      Exinst.Internal.Sum
      Exinst.Instances.Base
  build-depends:
      base >=4.9 && <5.0
    , constraints >=0.4
    , profunctors >=5.0
    , singletons >=2.2
  ghcjs-options: -Wall -O3
  ghc-options: -Wall -O2

  if flag(aeson)
    build-depends: aeson
    other-modules: Exinst.Instances.Aeson
  if flag(binary) || flag(bytes)
    build-depends: binary
    other-modules: Exinst.Instances.Binary
  if flag(bytes)
    build-depends: bytes >=0.15
    other-modules: Exinst.Instances.Bytes
  if flag(cereal) || flag(bytes)
    build-depends: cereal
    other-modules: Exinst.Instances.Cereal
  if flag(deepseq)
    build-depends: deepseq
    other-modules: Exinst.Instances.DeepSeq
  if flag(hashable)
    build-depends: hashable
    other-modules: Exinst.Instances.Hashable
  if flag(quickcheck)
    build-depends: QuickCheck
    other-modules: Exinst.Instances.QuickCheck


test-suite tests
  default-language: Haskell2010
  type: exitcode-stdio-1.0
  hs-source-dirs: tests src/lib
  main-is: Main.hs
  build-depends:
     aeson
   , base
   , binary
   , bytes
   , bytestring
   , cereal
   , constraints
   , deepseq
   , hashable
   , profunctors
   , QuickCheck
   , singletons
   , tasty
   , tasty-hunit
   , tasty-quickcheck


flag aeson
  description: Provide instances for @aeson@
  default: True
  manual: True
flag bytes
  description: Provide instances for @bytes@ (implies @ceral@ and @binary@).
  default: True
  manual: True
flag binary
  description: Provide instances for @binary@.
  default: True
  manual: True
flag cereal
  description: Provide instances for @cereal@.
  default: True
  manual: True
flag deepseq
  description: Provide instances for @deepseq@
  default: True
  manual: True
flag hashable
  description: Provide instances for @hashable@
  default: True
  manual: True
flag quickcheck
  description: Provide instances for @QuickCheck@
  default: True
  manual: True