forked from pool/ghc-lens
osc copypac from project:devel:languages:haskell:ghc-8.10.x package:ghc-lens revision:25, using keep-link
OBS-URL: https://build.opensuse.org/package/show/devel:languages:haskell/ghc-lens?expand=0&rev=42
This commit is contained in:
parent
4b9a5a71d0
commit
40d6ca6773
106
ghc-lens.changes
106
ghc-lens.changes
@ -1,3 +1,109 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Feb 24 18:57:20 UTC 2021 - psimons@suse.com
|
||||
|
||||
- Update lens to version 5.0.1.
|
||||
5.0.1 [2021.02.24]
|
||||
------------------
|
||||
* Fix a bug in which `makeLenses` could produce ill kinded optics for
|
||||
poly-kinded datatypes in certain situations.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Feb 19 23:03:14 UTC 2021 - psimons@suse.com
|
||||
|
||||
- Update lens to version 5.
|
||||
5 [2021.02.17]
|
||||
--------------
|
||||
* Support building with GHC 9.0.
|
||||
* Remove the `Swapped` type class in favor of `Swap` from the `assoc` package.
|
||||
* Remove the `Strict` type class in favor of `Strict` from the `strict` package.
|
||||
|
||||
The `swapped`, `strict` and `lazy` isomorphisms are now defined using "new" type classes.
|
||||
|
||||
Users which define own instances of old type classes are advised to
|
||||
define instances of the new ones.
|
||||
|
||||
```haskell
|
||||
import qualified Data.Bifunctor.Swap as Swap
|
||||
import qualified Control.Lens as Lens
|
||||
|
||||
instance Swap.Swap MyType where
|
||||
swap = ...
|
||||
|
||||
#if !MIN_VERSION_lens(4,20,0)
|
||||
instance Lens.Swapped MyType where
|
||||
swapped = iso Swap.swap Swap.swap
|
||||
#endif
|
||||
```
|
||||
* The `FunctorWithIndex`, `FoldableWithIndex` and `TraversableWithIndex` type classes
|
||||
have been migrated to a new package,
|
||||
[`indexed-traversable`](https://hackage.haskell.org/package/indexed-traversable).
|
||||
|
||||
The `imapped`, `ifolded` and `itraversed` methods are now top-level functions.
|
||||
If you are not defining these methods in your instances,
|
||||
you don't need to change your definitions.
|
||||
|
||||
Beware: the `optics-core` package (versions <0.4) defines similar classes,
|
||||
and will also migrate to use `indexed-traversable` classes. Therefore, you
|
||||
might get duplicate instance errors if your package defines both.
|
||||
|
||||
If you define your own `FunctorWithIndex` etc. instances,
|
||||
we recommend that you depend directly on the `indexed-traversable` package.
|
||||
If you want to continue support `lens-4` users, you may write
|
||||
|
||||
```haskell
|
||||
-- from indexed-traversable
|
||||
import Data.Functor.WithIndex
|
||||
|
||||
-- from lens
|
||||
import qualified Control.Lens as L
|
||||
|
||||
-- your (indexed) container
|
||||
data MySeq a = ...
|
||||
|
||||
-- indexed-traversable instance
|
||||
instance FunctorWithIndex Int MySeq where imap = ...
|
||||
instance FoldableWithIndex Int MySeq where ifoldMap = ...
|
||||
instance TraversableWithIndex Int MySeq where itraverse = ...
|
||||
|
||||
-- lens <5 instance, note the !
|
||||
#if !MIN_VERSION_lens(5,0,0)
|
||||
instance L.FunctorWithIndex Int MySeq where imap = imap
|
||||
instance L.FoldableWithIndex Int MySeq where ifoldMap = ifoldMap
|
||||
instance L.TraversableWithIndex Int MySeq where itraverse = itraverse
|
||||
#endif
|
||||
```
|
||||
|
||||
In other words, always provide `indexed-traversable` instances.
|
||||
If your package depends on `lens` and allows `lens-4`,
|
||||
you should additionally provide instances for `lens-4` type classes
|
||||
that can reuse the `indexed-traversable` instances.
|
||||
|
||||
* Make the functions in `Control.Lens.TH` work more robustly with poly-kinded
|
||||
data types. This can cause a breaking change under certain situations:
|
||||
* TH-generated optics for poly-kinded data types are now much more likely to
|
||||
mention kind variables in their definitions, which will require enabling
|
||||
the `PolyKinds` extension at use sites in order to typecheck.
|
||||
* Because TH-generated optics now quantify more kind variables than they did
|
||||
previously, this can affect the order of visible type applications.
|
||||
* Generalize the types of `generic` and `generic1` to allow type-changing
|
||||
updates. If you wish to use the old, more restricted types of these
|
||||
functions, use `simple . generic` or `simple . generic1` instead.
|
||||
* Add `Control.Lens.Profunctor` with conversion functions to and from
|
||||
profunctor optic representation.
|
||||
* Add `Control.Lens.Review.reviewing`, which is like `review` but with a more
|
||||
polymorphic type.
|
||||
* Mark `Control.Lens.Equality` as Trustworthy.
|
||||
* The build-type has been changed from `Custom` to `Simple`.
|
||||
To achieve this, the `doctests` test suite has been removed in favor of using [`cabal-docspec`](https://github.com/phadej/cabal-extras/tree/master/cabal-docspec) to run the doctests.
|
||||
* Use `alterF` in `At (HashMap k)` instance implementation.
|
||||
* Use `alterF` in `At` and `Contains` instances for `Set`, `IntSet`, and
|
||||
`HashSet`.
|
||||
* Avoid re-inserting keys already present in `ix` for `Set`, `IntSet`,
|
||||
and `HashSet`. For `Set` and `HashSet`, this changes the semantics
|
||||
slightly; if the user-supplied key is `==` to one already present in
|
||||
the set, then the latter will not be replaced in the result.
|
||||
* Consume `()` values lazily in `Control.Lens.At`.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 8 19:13:43 UTC 2021 - psimons@suse.com
|
||||
|
||||
|
@ -19,19 +19,18 @@
|
||||
%global pkg_name lens
|
||||
%bcond_with tests
|
||||
Name: ghc-%{pkg_name}
|
||||
Version: 4.19.2
|
||||
Version: 5.0.1
|
||||
Release: 0
|
||||
Summary: Lenses, Folds and Traversals
|
||||
License: BSD-2-Clause
|
||||
URL: https://hackage.haskell.org/package/%{pkg_name}
|
||||
Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{version}.tar.gz
|
||||
Source1: https://hackage.haskell.org/package/%{pkg_name}-%{version}/revision/5.cabal#/%{pkg_name}.cabal
|
||||
BuildRequires: ghc-Cabal-devel
|
||||
BuildRequires: ghc-array-devel
|
||||
BuildRequires: ghc-assoc-devel
|
||||
BuildRequires: ghc-base-orphans-devel
|
||||
BuildRequires: ghc-bifunctors-devel
|
||||
BuildRequires: ghc-bytestring-devel
|
||||
BuildRequires: ghc-cabal-doctest-devel
|
||||
BuildRequires: ghc-call-stack-devel
|
||||
BuildRequires: ghc-comonad-devel
|
||||
BuildRequires: ghc-containers-devel
|
||||
@ -41,6 +40,8 @@ BuildRequires: ghc-exceptions-devel
|
||||
BuildRequires: ghc-filepath-devel
|
||||
BuildRequires: ghc-free-devel
|
||||
BuildRequires: ghc-hashable-devel
|
||||
BuildRequires: ghc-indexed-traversable-devel
|
||||
BuildRequires: ghc-indexed-traversable-instances-devel
|
||||
BuildRequires: ghc-kan-extensions-devel
|
||||
BuildRequires: ghc-mtl-devel
|
||||
BuildRequires: ghc-parallel-devel
|
||||
@ -48,10 +49,12 @@ BuildRequires: ghc-profunctors-devel
|
||||
BuildRequires: ghc-reflection-devel
|
||||
BuildRequires: ghc-rpm-macros
|
||||
BuildRequires: ghc-semigroupoids-devel
|
||||
BuildRequires: ghc-strict-devel
|
||||
BuildRequires: ghc-tagged-devel
|
||||
BuildRequires: ghc-template-haskell-devel
|
||||
BuildRequires: ghc-text-devel
|
||||
BuildRequires: ghc-th-abstraction-devel
|
||||
BuildRequires: ghc-these-devel
|
||||
BuildRequires: ghc-transformers-compat-devel
|
||||
BuildRequires: ghc-transformers-devel
|
||||
BuildRequires: ghc-unordered-containers-devel
|
||||
@ -61,11 +64,6 @@ ExcludeArch: %{ix86}
|
||||
BuildRequires: ghc-HUnit-devel
|
||||
BuildRequires: ghc-QuickCheck-devel
|
||||
BuildRequires: ghc-deepseq-devel
|
||||
BuildRequires: ghc-directory-devel
|
||||
BuildRequires: ghc-doctest-devel
|
||||
BuildRequires: ghc-generic-deriving-devel
|
||||
BuildRequires: ghc-nats-devel
|
||||
BuildRequires: ghc-semigroups-devel
|
||||
BuildRequires: ghc-simple-reflect-devel
|
||||
BuildRequires: ghc-test-framework-devel
|
||||
BuildRequires: ghc-test-framework-hunit-devel
|
||||
@ -168,7 +166,6 @@ This package provides the Haskell %{pkg_name} library development files.
|
||||
|
||||
%prep
|
||||
%autosetup -n %{pkg_name}-%{version}
|
||||
cp -p %{SOURCE1} %{pkg_name}.cabal
|
||||
|
||||
%build
|
||||
%ghc_lib_build
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:52f858ae3971a5104cdba5e81a27d154fda11fe65a54a4ac328c85904bdec23b
|
||||
size 705314
|
3
lens-5.0.1.tar.gz
Normal file
3
lens-5.0.1.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:ec543d933636419d686a9f00898f9a81cbbde65a24960f43a9f0a27216e9fc3f
|
||||
size 698361
|
546
lens.cabal
546
lens.cabal
@ -1,546 +0,0 @@
|
||||
name: lens
|
||||
category: Data, Lenses, Generics
|
||||
version: 4.19.2
|
||||
x-revision: 5
|
||||
license: BSD2
|
||||
cabal-version: 1.18
|
||||
license-file: LICENSE
|
||||
author: Edward A. Kmett
|
||||
maintainer: Edward A. Kmett <ekmett@gmail.com>
|
||||
stability: provisional
|
||||
homepage: http://github.com/ekmett/lens/
|
||||
bug-reports: http://github.com/ekmett/lens/issues
|
||||
copyright: Copyright (C) 2012-2016 Edward A. Kmett
|
||||
build-type: Custom
|
||||
-- build-tools: cpphs
|
||||
tested-with: GHC == 7.4.2
|
||||
, GHC == 7.6.3
|
||||
, GHC == 7.8.4
|
||||
, GHC == 7.10.3
|
||||
, GHC == 8.0.2
|
||||
, GHC == 8.2.2
|
||||
, GHC == 8.4.4
|
||||
, GHC == 8.6.5
|
||||
, GHC == 8.8.3
|
||||
, GHC == 8.10.1
|
||||
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>>
|
||||
.
|
||||
<images/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).
|
||||
|
||||
extra-source-files:
|
||||
.travis.yml
|
||||
.gitignore
|
||||
.hlint.yaml
|
||||
.vim.custom
|
||||
cabal.project
|
||||
examples/LICENSE
|
||||
examples/lens-examples.cabal
|
||||
examples/*.hs
|
||||
examples/*.lhs
|
||||
examples/.hlint.yaml
|
||||
include/*.h
|
||||
lens-properties/.hlint.yaml
|
||||
lens-properties/CHANGELOG.markdown
|
||||
lens-properties/LICENSE
|
||||
lens-properties/Setup.hs
|
||||
lens-properties/lens-properties.cabal
|
||||
travis/cabal-apt-install
|
||||
travis/config
|
||||
Warning.hs
|
||||
AUTHORS.markdown
|
||||
CHANGELOG.markdown
|
||||
README.markdown
|
||||
SUPPORT.markdown
|
||||
extra-doc-files:
|
||||
images/*.png
|
||||
|
||||
source-repository head
|
||||
type: git
|
||||
location: https://github.com/ekmett/lens.git
|
||||
|
||||
custom-setup
|
||||
setup-depends:
|
||||
Cabal >= 1.10 && <3.3,
|
||||
base >= 4.5 && <5,
|
||||
cabal-doctest >= 1 && <1.1,
|
||||
filepath
|
||||
|
||||
-- Enable benchmarking against Neil Mitchell's uniplate library for comparative performance analysis. Defaults to being turned off to avoid
|
||||
-- the extra dependency.
|
||||
--
|
||||
-- > cabal configure --enable-benchmarks -fbenchmark-uniplate && cabal build && cabal bench
|
||||
flag benchmark-uniplate
|
||||
default: False
|
||||
manual: True
|
||||
|
||||
-- Generate inline pragmas when using template-haskell. This defaults to enabled, but you can
|
||||
--
|
||||
-- > cabal install lens -f-inlining
|
||||
--
|
||||
-- to shut it off to benchmark the relative performance impact, or as last ditch effort to address compile
|
||||
-- errors resulting from the myriad versions of template-haskell that all purport to be 2.8.
|
||||
flag inlining
|
||||
manual: True
|
||||
default: True
|
||||
|
||||
-- Some 7.6.1-rc1 users report their TH still uses old style inline pragmas. This lets them turn on inlining.
|
||||
flag old-inline-pragmas
|
||||
default: False
|
||||
manual: True
|
||||
|
||||
-- Make the test suites dump their template-haskell splices.
|
||||
flag dump-splices
|
||||
default: False
|
||||
manual: True
|
||||
|
||||
-- You can disable the doctests test suite with -f-test-doctests
|
||||
flag test-doctests
|
||||
default: True
|
||||
manual: True
|
||||
|
||||
-- You can disable the hunit test suite with -f-test-hunit
|
||||
flag test-hunit
|
||||
default: True
|
||||
manual: True
|
||||
|
||||
-- Build the properties test if we're building tests
|
||||
flag test-properties
|
||||
default: True
|
||||
manual: True
|
||||
|
||||
flag test-templates
|
||||
default: True
|
||||
manual: True
|
||||
|
||||
-- Disallow unsafeCoerce
|
||||
flag safe
|
||||
default: False
|
||||
manual: True
|
||||
|
||||
-- Assert that we are trustworthy when we can
|
||||
flag trustworthy
|
||||
default: True
|
||||
manual: True
|
||||
|
||||
-- Attempt a parallel build with GHC 7.8
|
||||
flag j
|
||||
default: False
|
||||
manual: True
|
||||
|
||||
library
|
||||
build-depends:
|
||||
array >= 0.3.0.2 && < 0.6,
|
||||
base >= 4.5 && < 5,
|
||||
base-orphans >= 0.5.2 && < 1,
|
||||
bifunctors >= 5.1 && < 6,
|
||||
bytestring >= 0.9.2.1 && < 0.11,
|
||||
call-stack >= 0.1 && < 0.4,
|
||||
comonad >= 4 && < 6,
|
||||
contravariant >= 1.3 && < 2,
|
||||
containers >= 0.4.0 && < 0.7,
|
||||
distributive >= 0.3 && < 1,
|
||||
filepath >= 1.2.0.0 && < 1.5,
|
||||
free >= 4 && < 6,
|
||||
ghc-prim,
|
||||
hashable >= 1.1.2.3 && < 1.4,
|
||||
kan-extensions >= 5 && < 6,
|
||||
exceptions >= 0.1.1 && < 1,
|
||||
mtl >= 2.0.1 && < 2.3,
|
||||
parallel >= 3.1.0.1 && < 3.3,
|
||||
profunctors >= 5.2.1 && < 6,
|
||||
reflection >= 2.1 && < 3,
|
||||
semigroupoids >= 5 && < 6,
|
||||
tagged >= 0.4.4 && < 1,
|
||||
template-haskell >= 2.4 && < 2.17,
|
||||
th-abstraction >= 0.3 && < 0.5,
|
||||
text >= 0.11 && < 1.3,
|
||||
transformers >= 0.2 && < 0.6,
|
||||
transformers-compat >= 0.4 && < 1,
|
||||
unordered-containers >= 0.2.4 && < 0.3,
|
||||
vector >= 0.9 && < 0.13
|
||||
|
||||
if !impl(ghc >= 8.0)
|
||||
build-depends:
|
||||
generic-deriving >= 1.10 && < 2,
|
||||
semigroups >= 0.8.4 && < 1
|
||||
|
||||
if !impl(ghc >= 7.10)
|
||||
build-depends:
|
||||
nats >= 0.1 && < 1.2,
|
||||
void >= 0.5 && < 1
|
||||
|
||||
if !impl(ghc >= 7.8)
|
||||
build-depends:
|
||||
type-equality >= 1 && < 2
|
||||
|
||||
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.CTypes
|
||||
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.Typeable
|
||||
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.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
|
||||
GHC.Generics.Lens
|
||||
System.Exit.Lens
|
||||
System.FilePath.Lens
|
||||
System.IO.Error.Lens
|
||||
Language.Haskell.TH.Lens
|
||||
Numeric.Lens
|
||||
Numeric.Natural.Lens
|
||||
|
||||
other-modules:
|
||||
Control.Lens.Internal.Prelude
|
||||
Paths_lens
|
||||
|
||||
if flag(safe)
|
||||
cpp-options: -DSAFE=1
|
||||
|
||||
if flag(trustworthy) && impl(ghc>=7.2)
|
||||
other-extensions: Trustworthy
|
||||
cpp-options: -DTRUSTWORTHY=1
|
||||
|
||||
if flag(old-inline-pragmas) && impl(ghc>=7.6.0.20120810)
|
||||
cpp-options: -DOLD_INLINE_PRAGMAS=1
|
||||
|
||||
if flag(inlining)
|
||||
cpp-options: -DINLINING
|
||||
|
||||
if impl(ghc<7.4)
|
||||
ghc-options: -fno-spec-constr-count
|
||||
|
||||
if impl(ghc >= 7.10)
|
||||
ghc-options: -fno-warn-trustworthy-safe
|
||||
|
||||
if impl(ghc >= 8)
|
||||
ghc-options: -Wno-missing-pattern-synonym-signatures
|
||||
ghc-options: -Wno-redundant-constraints
|
||||
|
||||
if flag(j) && impl(ghc>=7.8)
|
||||
ghc-options: -j4
|
||||
|
||||
ghc-options: -Wall -fwarn-tabs -O2 -fdicts-cheap -funbox-strict-fields -fmax-simplifier-iterations=10
|
||||
|
||||
hs-source-dirs: src
|
||||
|
||||
include-dirs: include
|
||||
|
||||
default-language: Haskell2010
|
||||
|
||||
-- Verify that Template Haskell expansion works
|
||||
test-suite templates
|
||||
type: exitcode-stdio-1.0
|
||||
main-is: templates.hs
|
||||
other-modules: T799
|
||||
ghc-options: -Wall -threaded
|
||||
hs-source-dirs: tests
|
||||
default-language: Haskell2010
|
||||
|
||||
if flag(dump-splices)
|
||||
ghc-options: -ddump-splices
|
||||
|
||||
if !flag(test-templates)
|
||||
buildable: False
|
||||
else
|
||||
build-depends: base, lens
|
||||
|
||||
-- Verify the properties of lenses with QuickCheck
|
||||
test-suite properties
|
||||
type: exitcode-stdio-1.0
|
||||
main-is: properties.hs
|
||||
other-modules:
|
||||
Control.Lens.Properties
|
||||
ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N
|
||||
hs-source-dirs:
|
||||
tests
|
||||
lens-properties/src
|
||||
include-dirs: include
|
||||
default-language: Haskell2010
|
||||
if !flag(test-properties)
|
||||
buildable: False
|
||||
else
|
||||
build-depends:
|
||||
base,
|
||||
lens,
|
||||
QuickCheck >= 2.4,
|
||||
test-framework >= 0.6,
|
||||
test-framework-quickcheck2 >= 0.2,
|
||||
transformers
|
||||
|
||||
test-suite hunit
|
||||
type: exitcode-stdio-1.0
|
||||
main-is: hunit.hs
|
||||
ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N
|
||||
hs-source-dirs: tests
|
||||
default-language: Haskell2010
|
||||
|
||||
if !flag(test-hunit)
|
||||
buildable: False
|
||||
else
|
||||
build-depends:
|
||||
base,
|
||||
containers,
|
||||
HUnit >= 1.2,
|
||||
lens,
|
||||
mtl,
|
||||
test-framework >= 0.6,
|
||||
test-framework-hunit >= 0.2
|
||||
|
||||
-- Verify the results of the examples
|
||||
test-suite doctests
|
||||
type: exitcode-stdio-1.0
|
||||
main-is: doctests.hs
|
||||
ghc-options: -Wall -threaded
|
||||
hs-source-dirs: tests
|
||||
default-language: Haskell2010
|
||||
x-doctest-options: --fast
|
||||
|
||||
if flag(trustworthy) && impl(ghc>=7.2)
|
||||
other-extensions: Trustworthy
|
||||
cpp-options: -DTRUSTWORTHY=1
|
||||
|
||||
if !flag(test-doctests)
|
||||
buildable: False
|
||||
else
|
||||
build-depends:
|
||||
base,
|
||||
bytestring,
|
||||
containers,
|
||||
directory >= 1.0,
|
||||
deepseq,
|
||||
doctest >= 0.11.4 && < 0.12 || >= 0.13 && < 0.19,
|
||||
filepath,
|
||||
generic-deriving,
|
||||
lens,
|
||||
mtl,
|
||||
nats,
|
||||
parallel,
|
||||
semigroups >= 0.9,
|
||||
simple-reflect >= 0.3.1,
|
||||
text,
|
||||
unordered-containers,
|
||||
vector < 0.12.2
|
||||
|
||||
-- Basic benchmarks for the uniplate-style combinators
|
||||
benchmark plated
|
||||
type: exitcode-stdio-1.0
|
||||
main-is: plated.hs
|
||||
ghc-options: -Wall -O2 -threaded -fdicts-cheap -funbox-strict-fields
|
||||
hs-source-dirs: benchmarks
|
||||
default-language: Haskell2010
|
||||
build-depends:
|
||||
base,
|
||||
base-compat >=0.11.0 && <0.12,
|
||||
comonad,
|
||||
criterion,
|
||||
deepseq,
|
||||
generic-deriving,
|
||||
lens,
|
||||
transformers
|
||||
|
||||
if flag(benchmark-uniplate)
|
||||
build-depends: uniplate >= 1.6.7 && < 1.7
|
||||
cpp-options: -DBENCHMARK_UNIPLATE
|
||||
|
||||
-- Benchmarking alongside variants
|
||||
benchmark alongside
|
||||
type: exitcode-stdio-1.0
|
||||
main-is: alongside.hs
|
||||
ghc-options: -Wall -O2 -threaded -fdicts-cheap -funbox-strict-fields
|
||||
hs-source-dirs: benchmarks
|
||||
default-language: Haskell2010
|
||||
build-depends:
|
||||
base,
|
||||
comonad >= 4,
|
||||
criterion,
|
||||
deepseq,
|
||||
lens,
|
||||
transformers
|
||||
|
||||
-- Benchmarking folds
|
||||
benchmark folds
|
||||
type: exitcode-stdio-1.0
|
||||
main-is: folds.hs
|
||||
ghc-options: -Wall -O2 -threaded -fdicts-cheap -funbox-strict-fields
|
||||
hs-source-dirs: benchmarks
|
||||
default-language: Haskell2010
|
||||
build-depends:
|
||||
base,
|
||||
criterion,
|
||||
containers,
|
||||
bytestring,
|
||||
unordered-containers,
|
||||
vector,
|
||||
lens
|
||||
|
||||
-- Benchmarking traversals
|
||||
benchmark traversals
|
||||
type: exitcode-stdio-1.0
|
||||
main-is: traversals.hs
|
||||
ghc-options: -Wall -O2 -threaded -fdicts-cheap -funbox-strict-fields
|
||||
hs-source-dirs: benchmarks
|
||||
default-language: Haskell2010
|
||||
build-depends:
|
||||
base,
|
||||
criterion,
|
||||
containers,
|
||||
deepseq,
|
||||
bytestring,
|
||||
unordered-containers,
|
||||
vector,
|
||||
lens
|
||||
|
||||
-- Benchmarking unsafe implementation strategies
|
||||
benchmark unsafe
|
||||
type: exitcode-stdio-1.0
|
||||
main-is: unsafe.hs
|
||||
ghc-options: -Wall -O2 -threaded -fdicts-cheap -funbox-strict-fields
|
||||
hs-source-dirs: benchmarks
|
||||
default-language: Haskell2010
|
||||
build-depends:
|
||||
base,
|
||||
comonad >= 4,
|
||||
criterion >= 1,
|
||||
deepseq,
|
||||
generic-deriving,
|
||||
lens,
|
||||
transformers
|
Loading…
Reference in New Issue
Block a user