File optics-core.cabal of Package ghc-optics-core

cabal-version: 2.2
name:          optics-core
version:       0.4.1.1
x-revision:    1
license:       BSD-3-Clause
license-file:  LICENSE
build-type:    Simple
maintainer:    optics@well-typed.com
author:        Adam Gundry, Andres Löh, Andrzej Rybczak, Oleg Grenrus
tested-with:   GHC ==8.2.2 || ==8.4.4 || ==8.6.5 || ==8.8.4 || ==8.10.7
                || ==9.0.2 || ==9.2.8 || ==9.4.8 || ==9.6.5 || ==9.8.2
                || ==9.10.1,
               GHCJS ==8.4
synopsis:      Optics as an abstract interface: core definitions
category:      Data, Optics, Lenses
description:
  This package makes it possible to define and use Lenses, Traversals, Prisms
  and other optics, using an abstract interface.
  .
  This variant provides core definitions with a minimal dependency footprint.
  See the @<https://hackage.haskell.org/package/optics optics>@ package (and its
  dependencies) for documentation and the "batteries-included" variant.

extra-doc-files:
  diagrams/*.png
  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-core

flag explicit-generic-labels
  default: False
  manual:  True
  description: Require explicit GenericLabelOptics instances in order to use generics-based labels

common language
    ghc-options:        -Wall -Wcompat

    default-language:   Haskell2010

    default-extensions: BangPatterns
                        ConstraintKinds
                        DefaultSignatures
                        DeriveFoldable
                        DeriveFunctor
                        DeriveGeneric
                        DeriveTraversable
                        EmptyCase
                        FlexibleContexts
                        FlexibleInstances
                        FunctionalDependencies
                        GADTs
                        GeneralizedNewtypeDeriving
                        InstanceSigs
                        KindSignatures
                        LambdaCase
                        OverloadedLabels
                        PatternSynonyms
                        RankNTypes
                        ScopedTypeVariables
                        TupleSections
                        TypeApplications
                        TypeFamilies
                        TypeOperators
                        ViewPatterns

library
  import:           language
  hs-source-dirs:   src

  if flag(explicit-generic-labels)
    cpp-options: -DEXPLICIT_GENERIC_LABELS

  build-depends: base                   >= 4.10       && <5
               , array                  >= 0.5.2.0    && <0.6
               , containers             >= 0.5.10.2   && <0.8
               , indexed-profunctors    >= 0.1        && <0.2
               , transformers           >= 0.5        && <0.7
               , indexed-traversable    >= 0.1        && <0.2

  exposed-modules: Optics.Core

                   -- main optic type
                   Optics.Optic

                   -- optic kinds
                   Optics.AffineFold
                   Optics.AffineTraversal
                   Optics.Fold
                   Optics.Getter
                   Optics.Iso
                   Optics.IxAffineFold
                   Optics.IxAffineTraversal
                   Optics.IxFold
                   Optics.IxGetter
                   Optics.IxLens
                   Optics.IxSetter
                   Optics.IxTraversal
                   Optics.Lens
                   Optics.Prism
                   Optics.ReversedLens
                   Optics.ReversedPrism
                   Optics.Review
                   Optics.Setter
                   Optics.Traversal

                   -- optic utilities
                   Optics.Arrow
                   Optics.At.Core
                   Optics.Coerce
                   Optics.Cons.Core
                   Optics.Each.Core
                   Optics.Empty.Core
                   Optics.Generic
                   Optics.Indexed.Core
                   Optics.Mapping
                   Optics.Label
                   Optics.Operators
                   Optics.Operators.Unsafe
                   Optics.Re
                   Optics.ReadOnly
                   Optics.Core.Extras

                   -- optics for data types
                   Data.Either.Optics
                   Data.IntMap.Optics
                   Data.IntSet.Optics
                   Data.List.Optics
                   Data.Map.Optics
                   Data.Maybe.Optics
                   Data.Sequence.Optics
                   Data.Set.Optics
                   Data.Tree.Optics
                   Data.Tuple.Optics
                   Data.Typeable.Optics
                   GHC.Generics.Optics
                   Numeric.Optics

                   -- internal modules
                   Optics.Internal.Bi
                   Optics.Internal.Fold
                   Optics.Internal.Generic
                   Optics.Internal.Generic.TypeLevel
                   Optics.Internal.Indexed
                   Optics.Internal.Indexed.Classes
                   Optics.Internal.IxFold
                   Optics.Internal.IxSetter
                   Optics.Internal.IxTraversal
                   Optics.Internal.Magic
                   Optics.Internal.Optic
                   Optics.Internal.Optic.Subtyping
                   Optics.Internal.Optic.TypeLevel
                   Optics.Internal.Optic.Types
                   Optics.Internal.Setter
                   Optics.Internal.Traversal
                   Optics.Internal.Utils
openSUSE Build Service is sponsored by