/var/lib/ghc/package.conf.d/lens-4.13.conf is in libghc-lens-dev 4.13-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 | name: lens
version: 4.13
id: lens-4.13-bd521f48aa2f3bba473b59607540efc1
key: lens_1rRxixpORMq1gvpIk19gRs
license: BSD3
copyright: Copyright (C) 2012-2015 Edward A. Kmett
maintainer: Edward A. Kmett <ekmett@gmail.com>
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
author: Edward A. Kmett
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.Coerce
Control.Lens.Internal.Context Control.Lens.Internal.Deque
Control.Lens.Internal.Exception Control.Lens.Internal.FieldTH
Control.Lens.Internal.PrismTH 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.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.Wrapped Control.Lens.Zoom
Control.Monad.Error.Lens Control.Parallel.Strategies.Lens
Control.Seq.Lens Data.Array.Lens Data.Bits.Lens
Data.ByteString.Lens Data.ByteString.Strict.Lens
Data.ByteString.Lazy.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.Lens
Data.Text.Strict.Lens Data.Text.Lazy.Lens Data.Tree.Lens
Data.Typeable.Lens Data.Vector.Lens Data.Vector.Generic.Lens
Generics.Deriving.Lens GHC.Generics.Lens System.Exit.Lens
System.FilePath.Lens System.IO.Error.Lens Language.Haskell.TH.Lens
Numeric.Lens
hidden-modules: Paths_lens
trusted: False
import-dirs: /usr/lib/haskell-packages/ghc/lib/x86_64-linux-ghc-7.10.3/lens-4.13-1rRxixpORMq1gvpIk19gRs
library-dirs: /usr/lib/haskell-packages/ghc/lib/x86_64-linux-ghc-7.10.3/lens-4.13-1rRxixpORMq1gvpIk19gRs
data-dir: /usr/share/lens
hs-libraries: HSlens-4.13-1rRxixpORMq1gvpIk19gRs
depends:
array-0.5.1.0-960bf9ae8875cc30355e086f8853a049
base-4.8.2.0-0d6d1084fbc041e1cded9228e80e264d
base-orphans-0.4.5-fd5d4ef84797b48b23d9bf0d3ccf8c05
bifunctors-5.1-6066ffb58d3c88ee29cabccd21c869e0
bytestring-0.10.6.0-9a873bcf33d6ce2fd2698ce69e2c1c66
comonad-4.2.7.2-3ce8d4da7fa0772a6896e34966acad72
containers-0.5.6.2-59326c33e30ec8f6afd574cbac625bbb
contravariant-1.3.3-3eb16dd794f77adf8689c69921568e8b
distributive-0.4.4-bb01cbb0c133843286b9581b270abd0b
exceptions-0.8.0.2-36aed52be619b9728d2571e1d453a5a5
filepath-1.4.0.0-f97d1e4aebfd7a03be6980454fe31d6e
free-4.12.1-ad82e11832dd3624d7629a0543331400
ghc-prim-0.4.0.0-6cdc86811872333585fa98756aa7c51e
hashable-1.2.3.3-ce7af8ca3ebd83133b0e846c245dc9e2
kan-extensions-4.2.3-0dcfd7a8711d4fed869a8a4be382efde
mtl-2.2.1-3af90341e75ee52dfc4e3143b4e5d219
parallel-3.2.1.0-13fa56575e4752a542f0b618706881f7
profunctors-5.1.2-1408da4e15bf985231d06474259a0a9a
reflection-2.1.1.1-85822cc089c178bf4a18f476220ac065
semigroupoids-5.0.0.4-0fab8c80f8dee7e092f94a58b49c66d7
semigroups-0.18.0.1-8280af83a74b71fe859e6151e1ac901a
tagged-0.8.2-16a51d8cfafeba080a9011b87265d84b
template-haskell-2.10.0.0-3c4cb52230f347282af9b2817f013181
text-1.2.2.0-2c09cfae3213a07ad08b7cc1c9a4bb52
transformers-0.4.2.0-81450cd8f86b36eaa8fa0cbaf6efc3a3
transformers-compat-0.4.0.4-8aa4073730c676dbe210ea8bffd8d092
unordered-containers-0.2.5.1-a371fb886d3c588f30731c181c11e7b7
vector-0.11.0.0-c6a21b92685f6fef26c6c5da6982f3c6
void-0.7.1-a8db3bfa56429340e1d25f3b5062a9e2
haddock-interfaces: /usr/lib/ghc-doc/haddock/lens-4.13/lens.haddock
haddock-html: /usr/share/doc/libghc-lens-doc/html/
|