121 lines
4.3 KiB
Plaintext
121 lines
4.3 KiB
Plaintext
Name: fclabels
|
|
Version: 2.0.3.3
|
|
x-revision: 3
|
|
Author: Sebastiaan Visser, Erik Hesselink, Chris Eidhof, Sjoerd Visscher
|
|
with lots of help and feedback from others.
|
|
Synopsis: First class accessor labels implemented as lenses.
|
|
Description: This package provides first class labels that can act as
|
|
bidirectional record fields. The labels can be derived
|
|
automatically using Template Haskell which means you don't have
|
|
to write any boilerplate yourself. The labels are implemented as
|
|
/lenses/ and are fully composable. Lenses can be used to /get/,
|
|
/set/ and /modify/ parts of a data type in a consistent way.
|
|
.
|
|
See "Data.Label" for an introductory explanation or see the
|
|
introductory blog post at
|
|
<http://fvisser.nl/post/2013/okt/1/fclabels-2.0.html>
|
|
.
|
|
* /Total and partial lenses/
|
|
.
|
|
Internally lenses do not used Haskell functions directly, but
|
|
are implemented as categories. Categories allow the lenses to be
|
|
run in custom computational contexts. This approach allows us to
|
|
make partial lenses that point to fields of multi-constructor
|
|
datatypes in an elegant way.
|
|
.
|
|
See "Data.Label.Partial" for the use of partial labels.
|
|
.
|
|
* /Monomorphic and polymorphic lenses/
|
|
.
|
|
We have both polymorphic and monomorphic lenses. Polymorphic
|
|
lenses allow updates that change the type. The types of
|
|
polymorphic lenses are slightly more verbose than their
|
|
monomorphic counterparts, but their usage is similar. Because
|
|
monomorphic lenses are built by restricting the types of
|
|
polymorphic lenses they are essentially the same and can be
|
|
freely composed with eachother.
|
|
.
|
|
See "Data.Label.Mono" and "Data.Label.Poly" for the difference
|
|
between polymorphic and monomorphic lenses.
|
|
.
|
|
* /Using fclabels/
|
|
.
|
|
To simplify working with labels we supply both a set of labels
|
|
for Haskell's base types, like lists, tuples, Maybe and Either,
|
|
and we supply a set of combinators for working with labels for
|
|
values in the Reader and State monad.
|
|
.
|
|
See "Data.Label.Base" and "Data.Label.Monadic" for more
|
|
information.
|
|
.
|
|
* /Changelog from 2.0.3.1 to 2.0.3.2/
|
|
.
|
|
> - Allow HUnit 1.5.*.
|
|
|
|
Maintainer: Sebastiaan Visser <code@fvisser.nl>
|
|
Homepage: https://github.com/sebastiaanvisser/fclabels
|
|
Bug-Reports: https://github.com/sebastiaanvisser/fclabels/issues
|
|
License: BSD3
|
|
License-File: LICENSE
|
|
Category: Data, Lenses
|
|
Cabal-Version: >= 1.8
|
|
Build-Type: Simple
|
|
Tested-With:
|
|
GHC==7.4.2,
|
|
GHC==7.6.3,
|
|
GHC==7.8.4,
|
|
GHC==7.10.3,
|
|
GHC==8.0.2
|
|
Extra-Source-Files:
|
|
README.md
|
|
CHANGELOG
|
|
|
|
Library
|
|
HS-Source-Dirs: src
|
|
|
|
Exposed-Modules:
|
|
Data.Label
|
|
Data.Label.Base
|
|
Data.Label.Derive
|
|
Data.Label.Failing
|
|
Data.Label.Monadic
|
|
Data.Label.Mono
|
|
Data.Label.Partial
|
|
Data.Label.Point
|
|
Data.Label.Poly
|
|
Data.Label.Total
|
|
|
|
GHC-Options: -Wall
|
|
Build-Depends:
|
|
base >= 4.5 && < 4.13
|
|
, template-haskell >= 2.2 && < 2.15
|
|
, mtl >= 1.0 && < 2.3
|
|
, transformers >= 0.2 && < 0.6
|
|
|
|
Source-Repository head
|
|
Type: git
|
|
Location: git://github.com/sebastiaanvisser/fclabels.git
|
|
|
|
Test-Suite suite
|
|
Type: exitcode-stdio-1.0
|
|
HS-Source-Dirs: test
|
|
Main-Is: TestSuite.hs
|
|
Ghc-Options: -Wall -threaded
|
|
Build-Depends:
|
|
base < 5
|
|
, fclabels
|
|
, template-haskell >= 2.2 && < 2.15
|
|
, mtl >= 1.0 && < 2.3
|
|
, transformers >= 0.2 && < 0.6
|
|
, HUnit >= 1.2 && < 1.7
|
|
|
|
Benchmark benchmark
|
|
Type: exitcode-stdio-1.0
|
|
HS-Source-Dirs: bench
|
|
Main-Is: Benchmark.hs
|
|
Ghc-Options: -Wall -threaded
|
|
Build-Depends:
|
|
base < 5
|
|
, fclabels
|
|
, criterion < 1.6
|