#!/bin/sh
export PATH='/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl'
echo 'name: lens
version: 4.16.1
id: lens-4.16.1-3bz4Dsv6XmX5fPBvHmydDQ
key: lens-4.16.1-3bz4Dsv6XmX5fPBvHmydDQ
license: BSD-2-Clause
copyright: Copyright (C) 2012-2016 Edward A. Kmett
maintainer: Edward A. Kmett <ekmett@gmail.com>
author: Edward A. Kmett
stability: provisional
homepage: http://github.com/ekmett/lens/
synopsis: Lenses, Folds and Traversals
description:
    This package comes \"Batteries Included\" with many useful lenses for the types
    commonly used from the Haskell Platform, and with tools for automatically
    generating lenses and isomorphisms for user-supplied data types.
    .
    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.
    .
    An overview, with a large number of examples can be found in the <https://github.com/ekmett/lens#lens-lenses-folds-and-traversals README>.
    .
    An introductory video on the style of code used in this library by Simon Peyton Jones is available from <http://skillsmatter.com/podcast/scala/lenses-compositional-data-access-and-manipulation Skills Matter>.
    .
    A video on how to use lenses and how they are constructed is available on <http://youtu.be/cefnmjtAolY?hd=1 youtube>.
    .
    Slides for that second talk can be obtained from <http://comonad.com/haskell/Lenses-Folds-and-Traversals-NYC.pdf comonad.com>.
    .
    More information on the care and feeding of lenses, including a brief tutorial and motivation
    for their types can be found on the <https://github.com/ekmett/lens/wiki lens wiki>.
    .
    A small game of @pong@ and other more complex examples that manage their state using lenses can be found in the <https://github.com/ekmett/lens/blob/master/examples/ example folder>.
    .
    /Lenses, Folds and Traversals/
    .
    With some signatures simplified, the core of the hierarchy of lens-like constructions looks like:
    .
    .
    <<http://i.imgur.com/ALlbPRa.png>>
    .
    <Hierarchy.png (Local Copy)>
    .
    You can compose any two elements of the hierarchy above using @(.)@ from the @Prelude@, and you can
    use any element of the hierarchy as any type it linked to above it.
    .
    The result is their lowest upper bound in the hierarchy (or an error if that bound doesn'\''t exist).
    .
    For instance:
    .
    * You can use any '\''Traversal'\'' as a '\''Fold'\'' or as a '\''Setter'\''.
    .
    * The composition of a '\''Traversal'\'' and a '\''Getter'\'' yields a '\''Fold'\''.
    .
    /Minimizing Dependencies/
    .
    If you want to provide lenses and traversals for your own types in your own libraries, then you
    can do so without incurring a dependency on this (or any other) lens package at all.
    .
    /e.g./ for a data type:
    .
    > data Foo a = Foo Int Int a
    .
    You can define lenses such as
    .
    > -- bar :: Lens'\'' (Foo a) Int
    > bar :: Functor f => (Int -> f Int) -> Foo a -> f (Foo a)
    > bar f (Foo a b c) = fmap (\a'\'' -> Foo a'\'' b c) (f a)
    .
    > -- quux :: Lens (Foo a) (Foo b) a b
    > quux :: Functor f => (a -> f b) -> Foo a -> f (Foo b)
    > quux f (Foo a b c) = fmap (Foo a b) (f c)
    .
    without the need to use any type that isn'\''t already defined in the @Prelude@.
    .
    And you can define a traversal of multiple fields with '\''Control.Applicative.Applicative'\'':
    .
    > -- traverseBarAndBaz :: Traversal'\'' (Foo a) Int
    > traverseBarAndBaz :: Applicative f => (Int -> f Int) -> Foo a -> f (Foo a)
    > traverseBarAndBaz f (Foo a b c) = Foo <$> f a <*> f b <*> pure c
    .
    What is provided in this library is a number of stock lenses and traversals for
    common haskell types, a wide array of combinators for working them, and more
    exotic functionality, (/e.g./ getters, setters, indexed folds, isomorphisms).
category: Data, Lenses, Generics
abi: 379c9080721ac5051c27946a6b4c259c
exposed: True
exposed-modules:
    Control.Exception.Lens Control.Lens Control.Lens.At
    Control.Lens.Combinators Control.Lens.Cons Control.Lens.Each
    Control.Lens.Empty Control.Lens.Equality Control.Lens.Extras
    Control.Lens.Fold Control.Lens.Getter Control.Lens.Indexed
    Control.Lens.Internal Control.Lens.Internal.Bazaar
    Control.Lens.Internal.ByteString Control.Lens.Internal.CTypes
    Control.Lens.Internal.Coerce Control.Lens.Internal.Context
    Control.Lens.Internal.Deque Control.Lens.Internal.Exception
    Control.Lens.Internal.FieldTH Control.Lens.Internal.Fold
    Control.Lens.Internal.Getter Control.Lens.Internal.Indexed
    Control.Lens.Internal.Instances Control.Lens.Internal.Iso
    Control.Lens.Internal.Level Control.Lens.Internal.List
    Control.Lens.Internal.Magma Control.Lens.Internal.Prism
    Control.Lens.Internal.PrismTH Control.Lens.Internal.Review
    Control.Lens.Internal.Setter Control.Lens.Internal.TH
    Control.Lens.Internal.Zoom Control.Lens.Iso Control.Lens.Lens
    Control.Lens.Level Control.Lens.Operators Control.Lens.Plated
    Control.Lens.Prism Control.Lens.Reified Control.Lens.Review
    Control.Lens.Setter Control.Lens.TH Control.Lens.Traversal
    Control.Lens.Tuple Control.Lens.Type Control.Lens.Unsound
    Control.Lens.Wrapped Control.Lens.Zoom Control.Monad.Error.Lens
    Control.Parallel.Strategies.Lens Control.Seq.Lens Data.Array.Lens
    Data.Bits.Lens Data.ByteString.Lazy.Lens Data.ByteString.Lens
    Data.ByteString.Strict.Lens Data.Complex.Lens Data.Data.Lens
    Data.Dynamic.Lens Data.HashSet.Lens Data.IntSet.Lens Data.List.Lens
    Data.Map.Lens Data.Sequence.Lens Data.Set.Lens Data.Text.Lazy.Lens
    Data.Text.Lens Data.Text.Strict.Lens Data.Tree.Lens
    Data.Typeable.Lens Data.Vector.Generic.Lens Data.Vector.Lens
    GHC.Generics.Lens Language.Haskell.TH.Lens Numeric.Lens
    Numeric.Natural.Lens System.Exit.Lens System.FilePath.Lens
    System.IO.Error.Lens
hidden-modules: Paths_lens
import-dirs: /usr/lib/ghc-8.4.3/site-local/lens-4.16.1
library-dirs: /usr/lib/ghc-8.4.3/site-local/lens-4.16.1
dynamic-library-dirs: /usr/lib
data-dir: /usr/share/x86_64-linux-ghc-8.4.3/lens-4.16.1
hs-libraries: HSlens-4.16.1-3bz4Dsv6XmX5fPBvHmydDQ
depends:
    array-0.5.2.0 base-4.11.1.0 base-orphans-0.7-DFzqJo74HQjHjfhO0xkTzo
    bifunctors-5.5.2-GKpLQeXJfoy1hBTQomaJNY bytestring-0.10.8.2
    call-stack-0.1.0-Eiz5FM8yQXpI3vyQ1Rt4Jq
    comonad-5.0.3-85pQKM0zcqm9GBqMGwVBhh
    contravariant-1.4.1-HAsNOXS6UjNLhhUqovtoIr containers-0.5.11.0
    distributive-0.5.3-Ggkwa7XwRejLFdA5oDBaFZ filepath-1.4.2
    free-5.0.2-8Dh9U0jfyIEGTY8RQbsDzT ghc-prim-0.5.2.0
    hashable-1.2.7.0-KBRKfoLB8Vi3u8lTX7XQlg
    kan-extensions-5.1-GxLrfsnU80h8ws31i05m9j
    exceptions-0.10.0-7epDYg20HTz9YX9m9nzGfO mtl-2.2.2
    parallel-3.2.1.1-7VRdiJcVWj8BvjtM2xssyE
    profunctors-5.2.2-ID7DZhyJCeZH4cvILvv9qT
    reflection-2.1.3-4SrNpWQSBW2LTCJ2jLk3f1
    semigroupoids-5.2.2-K5xQrDOZUTjFKtGRaKUBjd
    tagged-0.8.5-8zhZJ4AR6AIK89q9NUJ4H template-haskell-2.13.0.0
    th-abstraction-0.2.7.0-K3VY5rzhCFL2FVEMFfolof text-1.2.3.0
    transformers-0.5.5.0
    transformers-compat-0.6.2-EZ0ZvADLUlc4V8RuKaJX5W
    unordered-containers-0.2.9.0-4xkK4TVeOzU5CT7vUnH40Y
    vector-0.12.0.1-1fezwShzdEfG3Hp1Pmvjkq
    void-0.7.2-JAsenjnj1DBHDal2sW0JoW
abi-depends: array-0.5.2.0=001d57bac323829c35f5e9edd158c1ef
             base-4.11.1.0=9da3f387598d41928f3ebf8097acf9b3
             base-orphans-0.7-DFzqJo74HQjHjfhO0xkTzo=9502af04c7c3772a92a8cf1ef282323a
             bifunctors-5.5.2-GKpLQeXJfoy1hBTQomaJNY=693803e0017373d29c3a9b4a2fb6f37d
             bytestring-0.10.8.2=76943c00398d547fb172e56c2f93c635
             call-stack-0.1.0-Eiz5FM8yQXpI3vyQ1Rt4Jq=842aa1f6a3dc6ac6e201dfeb465a9bd8
             comonad-5.0.3-85pQKM0zcqm9GBqMGwVBhh=dfe1557ffe65e225fff4c40762f0f6be
             contravariant-1.4.1-HAsNOXS6UjNLhhUqovtoIr=1c8446e86d39f5069240f7ab3c213859
             containers-0.5.11.0=7795138514357bd2e41eaf59b6cfce4f
             distributive-0.5.3-Ggkwa7XwRejLFdA5oDBaFZ=5764d0bbb28ac2bcf45e0b9749304ad4
             filepath-1.4.2=f8b35940dbf3bb5331e1c5ab9738687d
             free-5.0.2-8Dh9U0jfyIEGTY8RQbsDzT=10a88ac84b4d54a5489cf0673dccbdf2
             ghc-prim-0.5.2.0=39dc2488936298f474639901f9105eec
             hashable-1.2.7.0-KBRKfoLB8Vi3u8lTX7XQlg=ad8d36b5596969152937469512f0d3b1
             kan-extensions-5.1-GxLrfsnU80h8ws31i05m9j=c67fd49875acd86aafd2fa34455b6750
             exceptions-0.10.0-7epDYg20HTz9YX9m9nzGfO=87ba3c1011ac70bcfb17ce2e39a2e1bb
             mtl-2.2.2=3cf3b316ad8e985e039ee3b498a98253
             parallel-3.2.1.1-7VRdiJcVWj8BvjtM2xssyE=b5c7268b9b5d05fd127858174b9c4c3a
             profunctors-5.2.2-ID7DZhyJCeZH4cvILvv9qT=532f25f0872ec6a7f60cca5c5eb5f550
             reflection-2.1.3-4SrNpWQSBW2LTCJ2jLk3f1=d5e50dcee1bc213a020f67641ff20664
             semigroupoids-5.2.2-K5xQrDOZUTjFKtGRaKUBjd=6bb0fe6d46be7c4e1ab07046a447743c
             tagged-0.8.5-8zhZJ4AR6AIK89q9NUJ4H=8f78e013407135fc5016173a57c7eb1b
             template-haskell-2.13.0.0=1ce4a454c5861830bbdedc46baa462f3
             th-abstraction-0.2.7.0-K3VY5rzhCFL2FVEMFfolof=35b0c81646e1b531707072bc72d3020b
             text-1.2.3.0=be4c3e1c57cff1d501eb0e876706a48d
             transformers-0.5.5.0=633c3e5ec737c360775b452ce9aa1e0b
             transformers-compat-0.6.2-EZ0ZvADLUlc4V8RuKaJX5W=197a030c492741542d6f49bc76370bb8
             unordered-containers-0.2.9.0-4xkK4TVeOzU5CT7vUnH40Y=35805d13add6a65c87fb8fb413d93b58
             vector-0.12.0.1-1fezwShzdEfG3Hp1Pmvjkq=2d4c17574909e037fa0256847c747647
             void-0.7.2-JAsenjnj1DBHDal2sW0JoW=f14401e2229f003d6e8153beb939779e
haddock-interfaces: /usr/share/doc/haskell-lens/html/lens.haddock
haddock-html: /usr/share/doc/haskell-lens/html
' | '/usr/bin/ghc-pkg' 'update' '--force' '-' '--global' '--no-user-package-db' "$@"

