summaryrefslogtreecommitdiff
path: root/profunctor-optics.cabal
blob: f188bf01e4e56fe7d4fb5a86fc3fb5ad9653823f (plain)
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
cabal-version: >= 1.10

name:           profunctor-optics
version:        0.0.0.2
synopsis:       An optics library compatible with the typeclasses in 'profunctors'.
description:  
  This package provides utilities for creating and manipulating profunctor-based optics. Some highlights:
  .
  Full complement of isos, prisms, lenses, grates, traversals (affine, regular, and non-empty), folds (affine, regular, and non-empty), views, and setters. Many of these have categorical duals.
  .
  Composable indexed and co-indexed variants of all of the above.
  .
  Compact & straight-forward implementation. No inscrutable internal modules, lawless or otherwise ancillary typeclasses, or heavy type-level machinery.
  .
  Fully interoperable. All that is required to create optics (standard, idexable, or co-indexable) is the `profunctors` package, which is heavily used and seems likely to end up in `base` at some point. Optics compose with (.) from `Prelude` as is typical. If you want to provide profunctor optics for your own types in your own libraries, you can do so without incurring a dependency on this package. Conversions to & from the Van Laarhoven representations are provided for each optic type.
  .
  Well-documented properties and exportable predicates for testing your own optics.
  .
  See the <https://github.com/cmk/profunctor-extras/blob/master/profunctor-optics/README.md Readme> file for more information. 

category:       Data, Lenses, Profunctors
stability:      Experimental
homepage:       https://github.com/cmk/profunctor-extras
bug-reports:    https://github.com/cmk/profunctor-extras/issues
author:         Chris McKinlay
maintainer:     Chris McKinlay
copyright:      2019 Chris McKinlay
license:        BSD3
license-file:   LICENSE
build-type:     Simple
tested-with:    GHC == 8.6.3
extra-source-files:  ChangeLog.md

source-repository head
  type: git
  location: https://github.com/cmk/profunctor-extras

library
  exposed-modules:
      Control.Exception.Optic

      Data.Tuple.Optic

      Data.Connection.Optic
      Data.Connection.Optic.Int
      Data.Connection.Optic.Word
      Data.Connection.Optic.Float

      Data.Profunctor.Optic
      Data.Profunctor.Optic.Type
      Data.Profunctor.Optic.Iso
      Data.Profunctor.Optic.View
      Data.Profunctor.Optic.Setter
      Data.Profunctor.Optic.Lens
      Data.Profunctor.Optic.Prism
      Data.Profunctor.Optic.Grate
      Data.Profunctor.Optic.Fold
      Data.Profunctor.Optic.Fold0
      Data.Profunctor.Optic.Fold1
      Data.Profunctor.Optic.Traversal
      Data.Profunctor.Optic.Traversal0
      Data.Profunctor.Optic.Traversal1
      Data.Profunctor.Optic.Operator
      Data.Profunctor.Optic.Property
      Data.Profunctor.Optic.Index

  other-modules: Data.Profunctor.Optic.Import

  default-language: Haskell2010

  hs-source-dirs:
      src
  default-extensions: 
      ConstraintKinds
      RankNTypes 
      MultiParamTypeClasses 
      OverloadedStrings 
      FlexibleContexts
      FlexibleInstances 
      ExistentialQuantification
      NoImplicitPrelude
      QuantifiedConstraints
      ScopedTypeVariables
      TupleSections
      TypeOperators
      TypeApplications
      TypeFamilies

  ghc-options: -Wall -Wincomplete-uni-patterns -Wincomplete-record-updates
  build-depends:
      base              >= 4.9      && < 5.0
    , comonad           >= 4        && < 6
    , connections       >= 0.0.2    && < 0.1
    , containers        >= 0.4.0    && < 0.7
    , distributive      >= 0.3      && < 1
    , ilist             >= 0.3.1.0  && < 0.4
    , mtl               >= 2.0.1    && < 2.3
    , newtype-generics  >= 0.5.3    && < 0.6
    , profunctor-arrows >= 0.0.0.2  && < 0.0.1
    , profunctors       >= 5.2.1    && < 6
    , rings             >= 0.0.2    && < 0.1
    , semigroupoids     >= 5        && < 6
    , tagged            >= 0.4.4    && < 1
    , transformers      >= 0.2      && < 0.6
    , unliftio-core     >= 0.1.2    && < 0.2

test-suite doctests
  type:              exitcode-stdio-1.0
  main-is:           doctests.hs
  ghc-options:       -Wall -threaded
  hs-source-dirs:    test
  default-language:  Haskell2010
  x-doctest-options: --fast

  build-depends:
      base
    , containers
    , doctest >= 0.8
    , mtl
    , profunctor-optics

  default-extensions: 
      ConstraintKinds
      RankNTypes 
      MultiParamTypeClasses 
      OverloadedStrings 
      FlexibleContexts
      FlexibleInstances 
      ExistentialQuantification
      QuantifiedConstraints
      ScopedTypeVariables
      TupleSections
      TypeOperators
      TypeApplications
      TypeFamilies