SHA256
1
0
forked from pool/ghc-lens

osc copypac from project:devel:languages:haskell:ghc-9.6.x package:ghc-lens revision:7, using keep-link

OBS-URL: https://build.opensuse.org/package/show/devel:languages:haskell/ghc-lens?expand=0&rev=65
This commit is contained in:
Peter Simons 2023-11-22 09:17:20 +00:00 committed by Git OBS Bridge
parent 8d393ce19b
commit 1b6d08939c
2 changed files with 487 additions and 492 deletions

View File

@ -1,8 +1,3 @@
-------------------------------------------------------------------
Thu Nov 16 13:26:29 UTC 2023 - Peter Simons <psimons@suse.com>
- Strip CRLF line endings from the bundled Cabal file.
------------------------------------------------------------------- -------------------------------------------------------------------
Sat Sep 30 13:35:57 UTC 2023 - Peter Simons <psimons@suse.com> Sat Sep 30 13:35:57 UTC 2023 - Peter Simons <psimons@suse.com>

View File

@ -1,487 +1,487 @@
name: lens name: lens
category: Data, Lenses, Generics category: Data, Lenses, Generics
version: 5.2.3 version: 5.2.3
x-revision: 2 x-revision: 2
license: BSD2 license: BSD2
cabal-version: 1.18 cabal-version: 1.18
license-file: LICENSE license-file: LICENSE
author: Edward A. Kmett author: Edward A. Kmett
maintainer: Edward A. Kmett <ekmett@gmail.com> maintainer: Edward A. Kmett <ekmett@gmail.com>
stability: provisional stability: provisional
homepage: http://github.com/ekmett/lens/ homepage: http://github.com/ekmett/lens/
bug-reports: http://github.com/ekmett/lens/issues bug-reports: http://github.com/ekmett/lens/issues
copyright: Copyright (C) 2012-2016 Edward A. Kmett copyright: Copyright (C) 2012-2016 Edward A. Kmett
build-type: Simple build-type: Simple
-- build-tools: cpphs -- build-tools: cpphs
tested-with: GHC == 8.0.2 tested-with: GHC == 8.0.2
, GHC == 8.2.2 , GHC == 8.2.2
, GHC == 8.4.4 , GHC == 8.4.4
, GHC == 8.6.5 , GHC == 8.6.5
, GHC == 8.8.4 , GHC == 8.8.4
, GHC == 8.10.7 , GHC == 8.10.7
, GHC == 9.0.2 , GHC == 9.0.2
, GHC == 9.2.8 , GHC == 9.2.8
, GHC == 9.4.5 , GHC == 9.4.5
, GHC == 9.6.2 , GHC == 9.6.2
, GHC == 9.8.1 , GHC == 9.8.1
synopsis: Lenses, Folds and Traversals synopsis: Lenses, Folds and Traversals
description: description:
This package comes \"Batteries Included\" with many useful lenses for the types This package comes \"Batteries Included\" with many useful lenses for the types
commonly used from the Haskell Platform, and with tools for automatically commonly used from the Haskell Platform, and with tools for automatically
generating lenses and isomorphisms for user-supplied data types. generating lenses and isomorphisms for user-supplied data types.
. .
The combinators in @Control.Lens@ provide a highly generic toolbox for composing The combinators in @Control.Lens@ provide a highly generic toolbox for composing
families of getters, folds, isomorphisms, traversals, setters and lenses and their families of getters, folds, isomorphisms, traversals, setters and lenses and their
indexed variants. 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 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>. 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>. 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>. 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 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>. 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>. 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/ /Lenses, Folds and Traversals/
. .
With some signatures simplified, the core of the hierarchy of lens-like constructions looks like: With some signatures simplified, the core of the hierarchy of lens-like constructions looks like:
. .
. .
<<http://i.imgur.com/ALlbPRa.png>> <<http://i.imgur.com/ALlbPRa.png>>
. .
<https://raw.githubusercontent.com/ekmett/lens/master/images/Hierarchy.png (Local Copy)> <https://raw.githubusercontent.com/ekmett/lens/master/images/Hierarchy.png (Local Copy)>
. .
You can compose any two elements of the hierarchy above using @(.)@ from the @Prelude@, and you can 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. 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). The result is their lowest upper bound in the hierarchy (or an error if that bound doesn't exist).
. .
For instance: For instance:
. .
* You can use any 'Traversal' as a 'Fold' or as a 'Setter'. * You can use any 'Traversal' as a 'Fold' or as a 'Setter'.
. .
* The composition of a 'Traversal' and a 'Getter' yields a 'Fold'. * The composition of a 'Traversal' and a 'Getter' yields a 'Fold'.
. .
/Minimizing Dependencies/ /Minimizing Dependencies/
. .
If you want to provide lenses and traversals for your own types in your own libraries, then you 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. can do so without incurring a dependency on this (or any other) lens package at all.
. .
/e.g./ for a data type: /e.g./ for a data type:
. .
> data Foo a = Foo Int Int a > data Foo a = Foo Int Int a
. .
You can define lenses such as You can define lenses such as
. .
> -- bar :: Lens' (Foo a) Int > -- bar :: Lens' (Foo a) Int
> bar :: Functor f => (Int -> f Int) -> Foo a -> f (Foo a) > 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) > bar f (Foo a b c) = fmap (\a' -> Foo a' b c) (f a)
. .
> -- quux :: Lens (Foo a) (Foo b) a b > -- quux :: Lens (Foo a) (Foo b) a b
> quux :: Functor f => (a -> f b) -> Foo a -> f (Foo b) > quux :: Functor f => (a -> f b) -> Foo a -> f (Foo b)
> quux f (Foo a b c) = fmap (Foo a b) (f c) > 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@. 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': And you can define a traversal of multiple fields with 'Control.Applicative.Applicative':
. .
> -- traverseBarAndBaz :: Traversal' (Foo a) Int > -- traverseBarAndBaz :: Traversal' (Foo a) Int
> traverseBarAndBaz :: Applicative f => (Int -> f Int) -> Foo a -> f (Foo a) > traverseBarAndBaz :: Applicative f => (Int -> f Int) -> Foo a -> f (Foo a)
> traverseBarAndBaz f (Foo a b c) = Foo <$> f a <*> f b <*> pure c > 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 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 common haskell types, a wide array of combinators for working them, and more
exotic functionality, (/e.g./ getters, setters, indexed folds, isomorphisms). exotic functionality, (/e.g./ getters, setters, indexed folds, isomorphisms).
extra-source-files: extra-source-files:
.gitignore .gitignore
.hlint.yaml .hlint.yaml
.vim.custom .vim.custom
cabal.project cabal.project
examples/LICENSE examples/LICENSE
examples/lens-examples.cabal examples/lens-examples.cabal
examples/*.hs examples/*.hs
examples/*.lhs examples/*.lhs
examples/.hlint.yaml examples/.hlint.yaml
include/*.h include/*.h
lens-properties/.hlint.yaml lens-properties/.hlint.yaml
lens-properties/CHANGELOG.markdown lens-properties/CHANGELOG.markdown
lens-properties/LICENSE lens-properties/LICENSE
lens-properties/Setup.hs lens-properties/Setup.hs
lens-properties/lens-properties.cabal lens-properties/lens-properties.cabal
AUTHORS.markdown AUTHORS.markdown
CHANGELOG.markdown CHANGELOG.markdown
README.markdown README.markdown
SUPPORT.markdown SUPPORT.markdown
extra-doc-files: extra-doc-files:
images/*.png images/*.png
source-repository head source-repository head
type: git type: git
location: https://github.com/ekmett/lens.git location: https://github.com/ekmett/lens.git
-- Enable benchmarking against Neil Mitchell's uniplate library for comparative performance analysis. Defaults to being turned off to avoid -- Enable benchmarking against Neil Mitchell's uniplate library for comparative performance analysis. Defaults to being turned off to avoid
-- the extra dependency. -- the extra dependency.
-- --
-- > cabal configure --enable-benchmarks -fbenchmark-uniplate && cabal build && cabal bench -- > cabal configure --enable-benchmarks -fbenchmark-uniplate && cabal build && cabal bench
flag benchmark-uniplate flag benchmark-uniplate
default: False default: False
manual: True manual: True
-- Generate inline pragmas when using template-haskell. This defaults to enabled, but you can -- Generate inline pragmas when using template-haskell. This defaults to enabled, but you can
-- --
-- > cabal install lens -f-inlining -- > cabal install lens -f-inlining
-- --
-- to shut it off to benchmark the relative performance impact, or as last ditch effort to address compile -- 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. -- errors resulting from the myriad versions of template-haskell that all purport to be 2.8.
flag inlining flag inlining
manual: True manual: True
default: True default: True
-- Make the test suites dump their template-haskell splices. -- Make the test suites dump their template-haskell splices.
flag dump-splices flag dump-splices
default: False default: False
manual: True manual: True
-- You can disable the hunit test suite with -f-test-hunit -- You can disable the hunit test suite with -f-test-hunit
flag test-hunit flag test-hunit
default: True default: True
manual: True manual: True
-- Build the properties test if we're building tests -- Build the properties test if we're building tests
flag test-properties flag test-properties
default: True default: True
manual: True manual: True
flag test-templates flag test-templates
default: True default: True
manual: True manual: True
-- Assert that we are trustworthy when we can -- Assert that we are trustworthy when we can
flag trustworthy flag trustworthy
default: True default: True
manual: True manual: True
-- Attempt a parallel build with GHC 7.8 -- Attempt a parallel build with GHC 7.8
flag j flag j
default: False default: False
manual: True manual: True
library library
build-depends: build-depends:
array >= 0.5.0.0 && < 0.6, array >= 0.5.0.0 && < 0.6,
assoc >= 1.0.2 && < 1.2, assoc >= 1.0.2 && < 1.2,
base >= 4.9 && < 5, base >= 4.9 && < 5,
base-orphans >= 0.5.2 && < 1, base-orphans >= 0.5.2 && < 1,
bifunctors >= 5.5.7 && < 6, bifunctors >= 5.5.7 && < 6,
bytestring >= 0.10.4.0 && < 0.13, bytestring >= 0.10.4.0 && < 0.13,
call-stack >= 0.1 && < 0.5, call-stack >= 0.1 && < 0.5,
comonad >= 5.0.7 && < 6, comonad >= 5.0.7 && < 6,
containers >= 0.5.5.1 && < 0.8, containers >= 0.5.5.1 && < 0.8,
contravariant >= 1.4 && < 2, contravariant >= 1.4 && < 2,
distributive >= 0.5.1 && < 1, distributive >= 0.5.1 && < 1,
exceptions >= 0.8.2.1 && < 1, exceptions >= 0.8.2.1 && < 1,
filepath >= 1.2.0.0 && < 1.5, filepath >= 1.2.0.0 && < 1.5,
free >= 5.1.5 && < 6, free >= 5.1.5 && < 6,
ghc-prim, ghc-prim,
hashable >= 1.2.7.0 && < 1.5, hashable >= 1.2.7.0 && < 1.5,
indexed-traversable >= 0.1 && < 0.2, indexed-traversable >= 0.1 && < 0.2,
indexed-traversable-instances >= 0.1 && < 0.2, indexed-traversable-instances >= 0.1 && < 0.2,
kan-extensions >= 5 && < 6, kan-extensions >= 5 && < 6,
mtl >= 2.2.1 && < 2.4, mtl >= 2.2.1 && < 2.4,
parallel >= 3.2.1.0 && < 3.3, parallel >= 3.2.1.0 && < 3.3,
profunctors >= 5.5.2 && < 6, profunctors >= 5.5.2 && < 6,
reflection >= 2.1 && < 3, reflection >= 2.1 && < 3,
semigroupoids >= 5.0.1 && < 7, semigroupoids >= 5.0.1 && < 7,
strict >= 0.4 && < 0.6, strict >= 0.4 && < 0.6,
tagged >= 0.8.6 && < 1, tagged >= 0.8.6 && < 1,
template-haskell >= 2.11.1.0 && < 2.22, template-haskell >= 2.11.1.0 && < 2.22,
text >= 1.2.3.0 && < 2.2, text >= 1.2.3.0 && < 2.2,
th-abstraction >= 0.4.1 && < 0.7, th-abstraction >= 0.4.1 && < 0.7,
these >= 1.1.1.1 && < 1.3, these >= 1.1.1.1 && < 1.3,
transformers >= 0.5.0.0 && < 0.7, transformers >= 0.5.0.0 && < 0.7,
transformers-compat >= 0.5.0.4 && < 1, transformers-compat >= 0.5.0.4 && < 1,
unordered-containers >= 0.2.10 && < 0.3, unordered-containers >= 0.2.10 && < 0.3,
vector >= 0.12.1.2 && < 0.14 vector >= 0.12.1.2 && < 0.14
-- Control.Lens as the first module, so cabal repl loads it. -- Control.Lens as the first module, so cabal repl loads it.
exposed-modules: exposed-modules:
Control.Lens Control.Lens
exposed-modules: exposed-modules:
Control.Exception.Lens Control.Exception.Lens
Control.Lens.At Control.Lens.At
Control.Lens.Combinators Control.Lens.Combinators
Control.Lens.Cons Control.Lens.Cons
Control.Lens.Each Control.Lens.Each
Control.Lens.Empty Control.Lens.Empty
Control.Lens.Equality Control.Lens.Equality
Control.Lens.Extras Control.Lens.Extras
Control.Lens.Fold Control.Lens.Fold
Control.Lens.Getter Control.Lens.Getter
Control.Lens.Indexed Control.Lens.Indexed
Control.Lens.Internal Control.Lens.Internal
Control.Lens.Internal.Bazaar Control.Lens.Internal.Bazaar
Control.Lens.Internal.ByteString Control.Lens.Internal.ByteString
Control.Lens.Internal.Context Control.Lens.Internal.Context
Control.Lens.Internal.CTypes Control.Lens.Internal.CTypes
Control.Lens.Internal.Deque Control.Lens.Internal.Deque
Control.Lens.Internal.Doctest Control.Lens.Internal.Doctest
Control.Lens.Internal.Exception Control.Lens.Internal.Exception
Control.Lens.Internal.FieldTH Control.Lens.Internal.FieldTH
Control.Lens.Internal.PrismTH Control.Lens.Internal.PrismTH
Control.Lens.Internal.Fold Control.Lens.Internal.Fold
Control.Lens.Internal.Getter Control.Lens.Internal.Getter
Control.Lens.Internal.Indexed Control.Lens.Internal.Indexed
Control.Lens.Internal.Instances Control.Lens.Internal.Instances
Control.Lens.Internal.Iso Control.Lens.Internal.Iso
Control.Lens.Internal.Level Control.Lens.Internal.Level
Control.Lens.Internal.List Control.Lens.Internal.List
Control.Lens.Internal.Magma Control.Lens.Internal.Magma
Control.Lens.Internal.Prism Control.Lens.Internal.Prism
Control.Lens.Internal.Profunctor Control.Lens.Internal.Profunctor
Control.Lens.Internal.Review Control.Lens.Internal.Review
Control.Lens.Internal.Setter Control.Lens.Internal.Setter
Control.Lens.Internal.TH Control.Lens.Internal.TH
Control.Lens.Internal.Zoom Control.Lens.Internal.Zoom
Control.Lens.Iso Control.Lens.Iso
Control.Lens.Lens Control.Lens.Lens
Control.Lens.Level Control.Lens.Level
Control.Lens.Operators Control.Lens.Operators
Control.Lens.Plated Control.Lens.Plated
Control.Lens.Prism Control.Lens.Prism
Control.Lens.Profunctor Control.Lens.Profunctor
Control.Lens.Reified Control.Lens.Reified
Control.Lens.Review Control.Lens.Review
Control.Lens.Setter Control.Lens.Setter
Control.Lens.TH Control.Lens.TH
Control.Lens.Traversal Control.Lens.Traversal
Control.Lens.Tuple Control.Lens.Tuple
Control.Lens.Type Control.Lens.Type
Control.Lens.Unsound Control.Lens.Unsound
Control.Lens.Wrapped Control.Lens.Wrapped
Control.Lens.Zoom Control.Lens.Zoom
Control.Monad.Error.Lens Control.Monad.Error.Lens
Control.Parallel.Strategies.Lens Control.Parallel.Strategies.Lens
Control.Seq.Lens Control.Seq.Lens
Data.Array.Lens Data.Array.Lens
Data.Bits.Lens Data.Bits.Lens
Data.ByteString.Lens Data.ByteString.Lens
Data.ByteString.Strict.Lens Data.ByteString.Strict.Lens
Data.ByteString.Lazy.Lens Data.ByteString.Lazy.Lens
Data.Complex.Lens Data.Complex.Lens
Data.Data.Lens Data.Data.Lens
Data.Dynamic.Lens Data.Dynamic.Lens
Data.HashSet.Lens Data.HashSet.Lens
Data.IntSet.Lens Data.IntSet.Lens
Data.List.Lens Data.List.Lens
Data.Map.Lens Data.Map.Lens
Data.Sequence.Lens Data.Sequence.Lens
Data.Set.Lens Data.Set.Lens
Data.Text.Lens Data.Text.Lens
Data.Text.Strict.Lens Data.Text.Strict.Lens
Data.Text.Lazy.Lens Data.Text.Lazy.Lens
Data.Tree.Lens Data.Tree.Lens
Data.Typeable.Lens Data.Typeable.Lens
Data.Vector.Lens Data.Vector.Lens
Data.Vector.Generic.Lens Data.Vector.Generic.Lens
GHC.Generics.Lens GHC.Generics.Lens
System.Exit.Lens System.Exit.Lens
System.FilePath.Lens System.FilePath.Lens
System.IO.Error.Lens System.IO.Error.Lens
Language.Haskell.TH.Lens Language.Haskell.TH.Lens
Numeric.Lens Numeric.Lens
Numeric.Natural.Lens Numeric.Natural.Lens
other-modules: other-modules:
Control.Lens.Internal.Prelude Control.Lens.Internal.Prelude
if flag(trustworthy) && impl(ghc) if flag(trustworthy) && impl(ghc)
other-extensions: Trustworthy other-extensions: Trustworthy
cpp-options: -DTRUSTWORTHY=1 cpp-options: -DTRUSTWORTHY=1
if flag(inlining) if flag(inlining)
cpp-options: -DINLINING cpp-options: -DINLINING
if flag(j) if flag(j)
ghc-options: -j4 ghc-options: -j4
ghc-options: -Wall -Wtabs -O2 -fdicts-cheap -funbox-strict-fields -fmax-simplifier-iterations=10 ghc-options: -Wall -Wtabs -O2 -fdicts-cheap -funbox-strict-fields -fmax-simplifier-iterations=10
-Wno-trustworthy-safe -Wmissing-pattern-synonym-signatures -Wno-redundant-constraints -Wno-trustworthy-safe -Wmissing-pattern-synonym-signatures -Wno-redundant-constraints
hs-source-dirs: src hs-source-dirs: src
include-dirs: include include-dirs: include
default-language: Haskell2010 default-language: Haskell2010
-- future proof, whether the field will be comma separated or not. -- future proof, whether the field will be comma separated or not.
x-docspec-extra-packages: simple-reflect x-docspec-extra-packages: simple-reflect
x-docspec-extra-packages: deepseq x-docspec-extra-packages: deepseq
-- Verify that Template Haskell expansion works -- Verify that Template Haskell expansion works
test-suite templates test-suite templates
type: exitcode-stdio-1.0 type: exitcode-stdio-1.0
main-is: templates.hs main-is: templates.hs
other-modules: other-modules:
BigRecord BigRecord
T799 T799
T917 T917
T972 T972
ghc-options: -Wall -threaded ghc-options: -Wall -threaded
hs-source-dirs: tests hs-source-dirs: tests
default-language: Haskell2010 default-language: Haskell2010
if flag(dump-splices) if flag(dump-splices)
ghc-options: -ddump-splices ghc-options: -ddump-splices
if !flag(test-templates) if !flag(test-templates)
buildable: False buildable: False
else else
build-depends: base, lens build-depends: base, lens
-- Verify the properties of lenses with QuickCheck -- Verify the properties of lenses with QuickCheck
test-suite properties test-suite properties
type: exitcode-stdio-1.0 type: exitcode-stdio-1.0
main-is: properties.hs main-is: properties.hs
other-modules: other-modules:
Control.Lens.Properties Control.Lens.Properties
ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N
hs-source-dirs: hs-source-dirs:
tests tests
lens-properties/src lens-properties/src
include-dirs: include include-dirs: include
default-language: Haskell2010 default-language: Haskell2010
if !flag(test-properties) if !flag(test-properties)
buildable: False buildable: False
else else
build-depends: build-depends:
base, base,
lens, lens,
QuickCheck >= 2.4, QuickCheck >= 2.4,
test-framework >= 0.6, test-framework >= 0.6,
test-framework-quickcheck2 >= 0.2, test-framework-quickcheck2 >= 0.2,
transformers transformers
test-suite hunit test-suite hunit
type: exitcode-stdio-1.0 type: exitcode-stdio-1.0
main-is: hunit.hs main-is: hunit.hs
ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N
hs-source-dirs: tests hs-source-dirs: tests
default-language: Haskell2010 default-language: Haskell2010
if !flag(test-hunit) if !flag(test-hunit)
buildable: False buildable: False
else else
build-depends: build-depends:
base, base,
containers, containers,
HUnit >= 1.2, HUnit >= 1.2,
lens, lens,
mtl, mtl,
text, text,
bytestring, bytestring,
test-framework >= 0.6, test-framework >= 0.6,
test-framework-hunit >= 0.2 test-framework-hunit >= 0.2
-- We need this dummy test-suite to add simple-reflect to the install plan -- We need this dummy test-suite to add simple-reflect to the install plan
-- --
-- When cabal-install's extra-packages support becomes widely available -- When cabal-install's extra-packages support becomes widely available
-- (i.e. after 3.4 release), we can remove this test-suite. -- (i.e. after 3.4 release), we can remove this test-suite.
test-suite doctests test-suite doctests
type: exitcode-stdio-1.0 type: exitcode-stdio-1.0
main-is: doctests.hs main-is: doctests.hs
hs-source-dirs: tests hs-source-dirs: tests
default-language: Haskell2010 default-language: Haskell2010
build-depends: base, deepseq, simple-reflect >= 0.3.1 build-depends: base, deepseq, simple-reflect >= 0.3.1
-- Basic benchmarks for the uniplate-style combinators -- Basic benchmarks for the uniplate-style combinators
benchmark plated benchmark plated
type: exitcode-stdio-1.0 type: exitcode-stdio-1.0
main-is: plated.hs main-is: plated.hs
ghc-options: -Wall -O2 -threaded -fdicts-cheap -funbox-strict-fields ghc-options: -Wall -O2 -threaded -fdicts-cheap -funbox-strict-fields
hs-source-dirs: benchmarks hs-source-dirs: benchmarks
default-language: Haskell2010 default-language: Haskell2010
build-depends: build-depends:
base, base,
base-compat >=0.11.0 && <0.14, base-compat >=0.11.0 && <0.14,
comonad, comonad,
criterion, criterion,
deepseq, deepseq,
generic-deriving, generic-deriving,
lens, lens,
transformers transformers
if flag(benchmark-uniplate) if flag(benchmark-uniplate)
build-depends: uniplate >= 1.6.7 && < 1.7 build-depends: uniplate >= 1.6.7 && < 1.7
cpp-options: -DBENCHMARK_UNIPLATE cpp-options: -DBENCHMARK_UNIPLATE
-- Benchmarking alongside variants -- Benchmarking alongside variants
benchmark alongside benchmark alongside
type: exitcode-stdio-1.0 type: exitcode-stdio-1.0
main-is: alongside.hs main-is: alongside.hs
ghc-options: -Wall -O2 -threaded -fdicts-cheap -funbox-strict-fields ghc-options: -Wall -O2 -threaded -fdicts-cheap -funbox-strict-fields
hs-source-dirs: benchmarks hs-source-dirs: benchmarks
default-language: Haskell2010 default-language: Haskell2010
build-depends: build-depends:
base, base,
comonad >= 4, comonad >= 4,
criterion, criterion,
deepseq, deepseq,
lens, lens,
transformers transformers
-- Benchmarking folds -- Benchmarking folds
benchmark folds benchmark folds
type: exitcode-stdio-1.0 type: exitcode-stdio-1.0
main-is: folds.hs main-is: folds.hs
ghc-options: -Wall -O2 -threaded -fdicts-cheap -funbox-strict-fields ghc-options: -Wall -O2 -threaded -fdicts-cheap -funbox-strict-fields
hs-source-dirs: benchmarks hs-source-dirs: benchmarks
default-language: Haskell2010 default-language: Haskell2010
build-depends: build-depends:
base, base,
criterion, criterion,
containers, containers,
bytestring, bytestring,
unordered-containers, unordered-containers,
vector, vector,
lens lens
-- Benchmarking traversals -- Benchmarking traversals
benchmark traversals benchmark traversals
type: exitcode-stdio-1.0 type: exitcode-stdio-1.0
main-is: traversals.hs main-is: traversals.hs
ghc-options: -Wall -O2 -threaded -fdicts-cheap -funbox-strict-fields ghc-options: -Wall -O2 -threaded -fdicts-cheap -funbox-strict-fields
hs-source-dirs: benchmarks hs-source-dirs: benchmarks
default-language: Haskell2010 default-language: Haskell2010
build-depends: build-depends:
base, base,
criterion, criterion,
containers, containers,
deepseq, deepseq,
bytestring, bytestring,
unordered-containers, unordered-containers,
vector, vector,
lens lens
-- Benchmarking unsafe implementation strategies -- Benchmarking unsafe implementation strategies
benchmark unsafe benchmark unsafe
type: exitcode-stdio-1.0 type: exitcode-stdio-1.0
main-is: unsafe.hs main-is: unsafe.hs
ghc-options: -Wall -O2 -threaded -fdicts-cheap -funbox-strict-fields ghc-options: -Wall -O2 -threaded -fdicts-cheap -funbox-strict-fields
hs-source-dirs: benchmarks hs-source-dirs: benchmarks
default-language: Haskell2010 default-language: Haskell2010
build-depends: build-depends:
base, base,
comonad >= 4, comonad >= 4,
criterion >= 1, criterion >= 1,
deepseq, deepseq,
generic-deriving, generic-deriving,
lens, lens,
transformers transformers