File: fclabels.cabal

package info (click to toggle)
haskell-fclabels 2.0.5.1-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 184 kB
  • sloc: haskell: 1,509; makefile: 2
file content (124 lines) | stat: -rw-r--r-- 4,475 bytes parent folder | download
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
Name:          fclabels
Version:       2.0.5.1
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.4 to 2.0.5/
               .
               >   - Support for GHC 8.10. Thanks to Potato Hatsue.

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.10
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.16
    , base-orphans     >= 0.8.2 && < 0.9
    , template-haskell >= 2.2   && < 2.18
    , mtl              >= 1.0   && < 2.3
    , transformers     >= 0.2   && < 0.6

  Default-Language: Haskell2010

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
    , mtl
    , transformers
    , HUnit            >= 1.2 && < 1.7
  Default-Language: Haskell2010

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
  Default-Language: Haskell2010