#!/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-FaBtBs35W1AFn0Dujiagj2
key: lens-4.16.1-FaBtBs35W1AFn0Dujiagj2
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: 60a1f41f9a49c8965911673c7537a6ce
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.2/site-local/lens-4.16.1
library-dirs: /usr/lib/ghc-8.4.2/site-local/lens-4.16.1
dynamic-library-dirs: /usr/lib
data-dir: /usr/share/x86_64-linux-ghc-8.4.2/lens-4.16.1
hs-libraries: HSlens-4.16.1-FaBtBs35W1AFn0Dujiagj2
depends:
    array-0.5.2.0 base-4.11.1.0 base-orphans-0.7-Ce7HYADtbvRFm06fkGZn4s
    bifunctors-5.5.2-y0Jo6YzcBhDmsrSD2U0uI bytestring-0.10.8.2
    call-stack-0.1.0-Eiz5FM8yQXpI3vyQ1Rt4Jq
    comonad-5.0.3-F1dqdMVuZCx2ZNE5v2Mffo
    contravariant-1.4.1-HAsNOXS6UjNLhhUqovtoIr containers-0.5.11.0
    distributive-0.5.3-8D3UFntN6SOi9DlWQo6ob filepath-1.4.2
    free-5.0.2-1JhRoy8hgYCFzlJq7R2fI5 ghc-prim-0.5.2.0
    hashable-1.2.7.0-KBRKfoLB8Vi3u8lTX7XQlg
    kan-extensions-5.1-JLRwUHMV20TEkLZ1gRD01G
    exceptions-0.8.3-6WkrztLwxRv2NB3qEvHVbf mtl-2.2.2
    parallel-3.2.1.1-7VRdiJcVWj8BvjtM2xssyE
    profunctors-5.2.2-JpFrDL5IpG6FCg91QT9bL
    reflection-2.1.3-4SrNpWQSBW2LTCJ2jLk3f1
    semigroupoids-5.2.2-3XWJxW11hq52AghnA7Hdjp
    tagged-0.8.5-8zhZJ4AR6AIK89q9NUJ4H template-haskell-2.13.0.0
    th-abstraction-0.2.6.0-8bhBYrrqrAJFCd9hjMrFb4 text-1.2.3.0
    transformers-0.5.5.0
    transformers-compat-0.6.2-EZ0ZvADLUlc4V8RuKaJX5W
    unordered-containers-0.2.9.0-A3KBTFupd4vFLOQxsI6884
    vector-0.12.0.1-4awQG9XUvVEBfJgKGHBhOb
    void-0.7.2-JAsenjnj1DBHDal2sW0JoW
abi-depends: array-0.5.2.0=59560c027ff6ea5b7e467a38c579b575
             base-4.11.1.0=ecd125f03c784a67b61c9a8f6dd222e4
             base-orphans-0.7-Ce7HYADtbvRFm06fkGZn4s=093ce043053ac21930c8106a9f107e28
             bifunctors-5.5.2-y0Jo6YzcBhDmsrSD2U0uI=2071d8d7e0c4e923ebeebc577a38c729
             bytestring-0.10.8.2=c1695cedf0cebf0c12d34c90fb94a65f
             call-stack-0.1.0-Eiz5FM8yQXpI3vyQ1Rt4Jq=ff395d255c93ce5436421522345a92c8
             comonad-5.0.3-F1dqdMVuZCx2ZNE5v2Mffo=3f77f5c5c66513479be6f1e8575ceaed
             contravariant-1.4.1-HAsNOXS6UjNLhhUqovtoIr=04645be8e0f7a088e75577517e101117
             containers-0.5.11.0=f8334bacfaf0e925ca7b24fb26fb2e66
             distributive-0.5.3-8D3UFntN6SOi9DlWQo6ob=c7bfa06b32830684f4d81cfb4a621151
             filepath-1.4.2=a70b79acbde9ca897bdc5eadf9254ba7
             free-5.0.2-1JhRoy8hgYCFzlJq7R2fI5=963b86f8e46c22c05a726d3340d573b2
             ghc-prim-0.5.2.0=a22477c99003a90dd639dbfd07997615
             hashable-1.2.7.0-KBRKfoLB8Vi3u8lTX7XQlg=0e3ad496fde59157bcd6a630b4b29548
             kan-extensions-5.1-JLRwUHMV20TEkLZ1gRD01G=f150d203cef4736146f23238ce1efc8a
             exceptions-0.8.3-6WkrztLwxRv2NB3qEvHVbf=90dd74da021381146ba64944278df775
             mtl-2.2.2=a7bec7c72de63625528e8aa4479db2c8
             parallel-3.2.1.1-7VRdiJcVWj8BvjtM2xssyE=5acc896b5484fd32116fb868fccee170
             profunctors-5.2.2-JpFrDL5IpG6FCg91QT9bL=bc130c4fe87e376dae451eed2be1e8d7
             reflection-2.1.3-4SrNpWQSBW2LTCJ2jLk3f1=6836785c45bc8070e47d6d80d320b70a
             semigroupoids-5.2.2-3XWJxW11hq52AghnA7Hdjp=c753a1aa1fc173655e4e9dbf8ef9b800
             tagged-0.8.5-8zhZJ4AR6AIK89q9NUJ4H=9cfccdbb0f679fbc0a04182b333a8da7
             template-haskell-2.13.0.0=b25d144eee230069f091d0d8982b331b
             th-abstraction-0.2.6.0-8bhBYrrqrAJFCd9hjMrFb4=aaf652d8c5d93f43cd2cc6e226fdb8fd
             text-1.2.3.0=5654b56910ce698015ec900075c28f62
             transformers-0.5.5.0=02be5c4dc3fdc926cf1b36bd484a25f8
             transformers-compat-0.6.2-EZ0ZvADLUlc4V8RuKaJX5W=63a0e01576545fb684fe201dfb63f95d
             unordered-containers-0.2.9.0-A3KBTFupd4vFLOQxsI6884=c76b79dc8a56ff4425c082d0052b04f4
             vector-0.12.0.1-4awQG9XUvVEBfJgKGHBhOb=6eab66b6328cb1f1f60a88d42282d4d0
             void-0.7.2-JAsenjnj1DBHDal2sW0JoW=a0cab37ac84e8049014ea649878e6848
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' "$@"

