packages feed

lens-1.6: lens.cabal

name:          lens
category:      Data, Lenses
version:       1.6
license:       BSD3
cabal-version: >= 1.8
license-file:  LICENSE
author:        Edward A. Kmett
maintainer:    Edward A. Kmett <ekmett@gmail.com>
stability:     provisional
homepage:      http://github.com/ekmett/lens/
bug-reports:   http://github.com/ekmett/lens/issues
copyright:     Copyright (C) 2012 Edward A. Kmett
synopsis:      Lenses, Folds and Traversals
description:
  The combinators in @Control.Lens@ provide a highly generic toolbox for composing
  families of getters, folds, isomorphisms, traversals, setters and lenses and their indexed variants.
  .
  /Lens Families/
  .
  For a longer description of why you should care about lens families, and an overview of why we use 4
  parameters a, b, c, and d instead of just 2, see <http://comonad.com/reader/2012/mirrored-lenses/>.
  .
  Sometimes you won't need the flexibility those extra parameters afford you and you can use
  .
  > type Simple f a b = f a a b b
  .
  to describe a 'Simple' 'Setter', 'Simple' 'Traversal', 'Simple' 'Lens' or 'Simple' 'Iso'.
  .
  /Avoiding Dependencies/
  .
  Note: If you merely want your library to /provide/ lenses you may not
  have to actually import /any/ lens library at all. For, say, a
  @'Simple' 'Lens' Bar Foo@, just export a function with the signature:
  .
  > foo :: Functor f => (Foo -> f Foo) -> Bar -> f Bar
  .
  and then you can compose it with other lenses using nothing more than @(.)@ from the Prelude.
  .
  /Deriving Lenses/
  .
  You can derive lenses automatically for many data types using 'makeLenses', and if a
  container is fully characterized by its lenses, you can use 'Representable' to
  automatically derive 'Functor', 'Applicative', 'Monad', and 'Distributive'.

build-type:    Simple
tested-with:   GHC == 7.4.1
extra-source-files: .travis.yml examples/Pong.hs examples/Test.hs

source-repository head
  type: git
  location: git://github.com/ekmett/lens.git

library
  build-depends:
    base             >= 4.3   && < 5,
    containers       >= 0.4.2 && < 0.6,
    mtl              >= 2.0.1 && < 2.2,
    template-haskell >= 2.4   && < 2.8,
    transformers     >= 0.3   && < 0.4

  exposed-modules: Control.Exception.Lens
                   Control.Lens
                   Control.Lens.Internal
                   Control.Lens.Representable
                   Control.Lens.Fold
                   Control.Lens.Getter
                   Control.Lens.Indexed
                   Control.Lens.Iso
                   Control.Lens.Setter
                   Control.Lens.TH
                   Control.Lens.Traversal
                   Control.Lens.Type
                   Data.Bits.Lens
                   Data.Complex.Lens
                   Data.Dynamic.Lens
                   Data.Either.Lens
                   Data.List.Lens
                   Data.Pair.Lens
                   Data.IntMap.Lens
                   Data.IntSet.Lens
                   Data.Map.Lens
                   Data.Sequence.Lens
                   Data.Set.Lens
                   Data.Tree.Lens
                   Language.Haskell.TH.Lens

  -- platform
  build-depends:   array >= 0.3.0.2 && < 0.5
  exposed-modules: Data.Array.Lens

  build-depends:   bytestring >= 0.9.1.10 && < 0.10
  exposed-modules: Data.ByteString.Lens Data.ByteString.Lazy.Lens

  build-depends:   text >= 0.11.1.5 && < 0.12
  exposed-modules: Data.Text.Lens Data.Text.Lazy.Lens

  build-depends:   parallel >= 3.1.0.1 && < 3.3
  exposed-modules: Control.Parallel.Strategies.Lens Control.Seq.Lens

  other-extensions:
    BangPatterns
    CPP
    DeriveDataTypeable
    FlexibleContexts
    FlexibleInstances
    FunctionalDependencies
    LiberalTypeSynonyms
    MultiParamTypeClasses
    Rank2Types
    RankNTypes
    TemplateHaskell
    TypeFamilies
    TypeOperators
    UndecidableInstances

  if (impl(ghc>=7.4))
    other-extensions: Trustworthy
    build-depends: ghc-prim
    exposed-modules: GHC.Generics.Lens

  ghc-options: -Wall -fwarn-tabs -O2 -fdicts-cheap -funbox-strict-fields
  hs-source-dirs: src

test-suite doctests
  type:            exitcode-stdio-1.0
  main-is:         doctests.hs

  build-depends:   base == 4.*,
                   doctest >= 0.8 && <= 0.9

  ghc-options:     -Wall -Werror -threaded
  hs-source-dirs:  test