name:          optics-extra
version:       0.4
license:       BSD3
license-file:  LICENSE
build-type:    Simple
cabal-version: 1.24
maintainer:    optics@well-typed.com
author:        Andrzej Rybczak
tested-with:   ghc ==8.2.2 || ==8.4.4 || ==8.6.5 || ==8.8.4 || ==8.10.3, GHCJS ==8.4
synopsis:      Extra utilities and instances for optics-core
category:      Data, Optics, Lenses
description:
  This package provides extra definitions and instances that extend the
  @<https://hackage.haskell.org/package/optics-core optics-core>@ package,
  without incurring too many dependencies.  See the
  @<https://hackage.haskell.org/package/optics optics>@ package for more
  documentation.

extra-doc-files:
  CHANGELOG.md

bug-reports:   https://github.com/well-typed/optics/issues
source-repository head
  type:     git
  location: https://github.com/well-typed/optics.git
  subdir:   optics-extra

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

  build-depends: base                   >= 4.10      && <5
               , array                  >= 0.5.2.0   && <0.6
               , bytestring             >= 0.10.8    && <0.12
               , containers             >= 0.5.10.2  && <0.7
               , hashable               >= 1.1.1     && <1.4
               , indexed-profunctors    >= 0.1       && <0.2
               , mtl                    >= 2.2.2     && <2.3
               , optics-core            >= 0.4       && <0.4.1
               , text                   >= 1.2       && <1.3
               , transformers           >= 0.5       && <0.6
               , unordered-containers   >= 0.2.6     && <0.3
               , vector                 >= 0.11      && <0.13
               , indexed-traversable-instances >=0.1 && <0.2

  exposed-modules: Optics.Extra

                   -- optic utilities
                   Optics.At
                   Optics.Cons
                   Optics.Each
                   Optics.Empty
                   Optics.Indexed
                   Optics.Passthrough
                   Optics.State
                   Optics.State.Operators
                   Optics.View
                   Optics.Zoom

                   -- optics for data types
                   Data.ByteString.Lazy.Optics
                   Data.ByteString.Optics
                   Data.ByteString.Strict.Optics
                   Data.HashMap.Optics
                   Data.HashSet.Optics
                   Data.Text.Lazy.Optics
                   Data.Text.Optics
                   Data.Text.Strict.Optics
                   Data.Vector.Generic.Optics
                   Data.Vector.Optics

                   -- internal modules
                   Optics.Extra.Internal.ByteString
                   Optics.Extra.Internal.Vector
                   Optics.Extra.Internal.Zoom

  default-extensions: BangPatterns
                      DefaultSignatures
                      DeriveFunctor
                      FlexibleContexts
                      FlexibleInstances
                      FunctionalDependencies
                      GADTs
                      InstanceSigs
                      LambdaCase
                      MultiParamTypeClasses
                      RankNTypes
                      ScopedTypeVariables
                      TupleSections
                      TypeApplications
                      TypeFamilies
                      TypeOperators