name:                 generic-lens
version:              0.4.1.0
synopsis:             Generic data-structure operations exposed as lenses.
description:          This package uses the GHC 8 Generic representation to derive various operations on data structures with a lens interface, including structural subtype relationship between records and positional indexing into arbitrary product types.

homepage:             https://github.com/kcsongor/generic-lens
license:              BSD3
license-file:         LICENSE
author:               Csongor Kiss
maintainer:           kiss.csongor.kiss@gmail.com
category:             Generics, Records, Lens
build-type:           Simple
cabal-version:        >= 1.10

extra-source-files:   ChangeLog.md
                    , examples/StarWars.hs
                    , examples/Examples.hs
                    , README.md

library
  exposed-modules:    Data.Generics.Product
                    , Data.Generics.Product.Any
                    , Data.Generics.Product.Fields
                    , Data.Generics.Product.Positions
                    , Data.Generics.Product.Subtype
                    , Data.Generics.Product.Typed

                    , Data.Generics.Sum
                    , Data.Generics.Sum.Any
                    , Data.Generics.Sum.Constructors
                    , Data.Generics.Sum.Typed
                    , Data.Generics.Sum.Subtype
                    , Data.Generics.Internal.Lens

  other-modules:      Data.Generics.Internal.Families
                    , Data.Generics.Internal.Families.Count
                    , Data.Generics.Internal.Families.Has
                    , Data.Generics.Internal.HList

                    , Data.Generics.Sum.Internal.Constructors
                    , Data.Generics.Sum.Internal.Typed
                    , Data.Generics.Sum.Internal.Subtype

                    , Data.Generics.Internal.Families
                    , Data.Generics.Internal.Families.Count
                    , Data.Generics.Internal.Families.Has
                    , Data.Generics.Internal.HList
                    , Data.Generics.Product.Internal.Fields
                    , Data.Generics.Product.Internal.Positions
                    , Data.Generics.Product.Internal.Subtype
                    , Data.Generics.Product.Internal.Typed

  build-depends:      base        >= 4.9 && <= 5.0
                    , profunctors >= 5.0 && <= 6.0

  hs-source-dirs:     src
  default-language:   Haskell2010
  ghc-options:        -Wall

source-repository head
  type:               git
  location:           https://github.com/kcsongor/generic-lens

test-suite generic-lens-test
  type:               exitcode-stdio-1.0
  hs-source-dirs:     test
  main-is:            Spec.hs

  build-depends:      base          >= 4.9 && <= 5.0
                    , generic-lens
                    , inspection-testing >= 0.1

  default-language:   Haskell2010
  ghc-options:        -Wall

benchmark generic-lens-bench
  type:               exitcode-stdio-1.0
  hs-source-dirs:     benchmarks
  main-is:            Bench.hs

  build-depends:      generic-lens

                    , base        >= 4.9 && <= 5.0
                    , QuickCheck
                    , criterion
                    , deepseq
                    , lens

  default-language:   Haskell2010
  ghc-options:        -Wall