packages feed

vinyl-0.13.2: vinyl.cabal

name:                vinyl
version:             0.13.2
synopsis:            Extensible Records
-- description:
license:             MIT
license-file:        LICENSE
author:              Jonathan Sterling
maintainer:          acowley@gmail.com
-- copyright:
category:            Records
stability:           Experimental
build-type:          Simple
cabal-version:       >=1.10
extra-source-files:  CHANGELOG.md
tested-with:         GHC == 8.4.4, GHC == 8.6.5, GHC == 8.8.4, GHC == 8.10.4, GHC == 9.0.1

description: Extensible records for Haskell with lenses.

source-repository head
  type:     git
  location: https://github.com/VinylRecords/Vinyl/

library
  exposed-modules:     Data.Vinyl
                     , Data.Vinyl.ARec
                     , Data.Vinyl.ARec.Internal
                     , Data.Vinyl.Class.Method
                     , Data.Vinyl.Core
                     , Data.Vinyl.CoRec
                     , Data.Vinyl.Curry
                     , Data.Vinyl.FromTuple
                     , Data.Vinyl.Lens
                     , Data.Vinyl.Derived
                     , Data.Vinyl.TypeLevel
                     , Data.Vinyl.Functor
                     , Data.Vinyl.Notation
                     , Data.Vinyl.Recursive
                     , Data.Vinyl.SRec
                     , Data.Vinyl.Syntax
                     , Data.Vinyl.Tutorial.Overview
                     , Data.Vinyl.XRec
  build-depends:       base >= 4.11 && <= 5,
                       ghc-prim,
                       deepseq,
                       array
  if impl (ghc < 8.6.0)
    build-depends: constraints >= 0.6.1
  default-language:    Haskell2010
  ghc-options:         -Wall
  other-extensions:    TypeApplications

benchmark storable
  type:             exitcode-stdio-1.0
  hs-source-dirs:   benchmarks
  main-is:          StorableBench.hs
  build-depends:    base,
                    vector,
                    criterion,
                    vinyl,
                    mwc-random,
                    microlens,
                    linear,
                    primitive
  ghc-options:      -O2
-- -ddump-to-file -ddump-simpl -dsuppress-module-prefixes -dsuppress-uniques
  default-language: Haskell2010

benchmark equality
  type:             exitcode-stdio-1.0
  hs-source-dirs:   benchmarks
  main-is:          EqualityBench.hs
  build-depends:    base, criterion, vinyl
  ghc-options:      -O2
  default-language: Haskell2010

benchmark accessors
  type:             exitcode-stdio-1.0
  hs-source-dirs:   benchmarks
  main-is:          AccessorsBench.hs
  build-depends:    base, criterion, tagged, vinyl, microlens
  ghc-options:      -O2
  default-language: Haskell2010

benchmark asa
  type:             exitcode-stdio-1.0
  hs-source-dirs:   benchmarks
  main-is:          AsABench.hs
  build-depends:    base, criterion, vinyl
  ghc-options:      -O2
  default-language: Haskell2010

-- TODO: Use cabal-docspec
-- test-suite doctests
--   type:             exitcode-stdio-1.0
--   hs-source-dirs:   tests
--   other-modules:    Intro
--   main-is:          doctests.hs
--   if impl (ghc < 9.0.1)
--     build-depends:    base, lens, doctest >= 0.8, singletons >= 0.10 && < 3, vinyl
--   else
--     build-depends:    base, lens, doctest >= 0.8, singletons-th >= 3 && < 3.1, vinyl
--   default-language: Haskell2010

test-suite aeson
  type:             exitcode-stdio-1.0
  hs-source-dirs:   tests
  main-is:          Aeson.hs
  build-depends:    base, hspec, aeson >= 1.4, text, mtl, vinyl,
                    vector, unordered-containers, lens, lens-aeson
  default-language: Haskell2010

test-suite spec
  type:                exitcode-stdio-1.0
  hs-source-dirs:      tests
  main-is:             Spec.hs
  other-modules:       CoRecSpec XRecSpec
  build-depends:       base
                     , vinyl
                     , microlens
                     , hspec
                     , should-not-typecheck >= 2.0 && < 2.2
  ghc-options:         -threaded -rtsopts -with-rtsopts=-N
  default-language:    Haskell2010