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
|
name: recursion-schemes
category: Control, Recursion
version: 5.2.3
license: BSD2
cabal-version: 1.18
license-file: LICENSE
author: Edward A. Kmett
maintainer: "Samuel Gélineau" <gelisam@gmail.com>,
"Ryan Scott" <ryan.gl.scott@gmail.com>,
"Luc Tielen" <luc.tielen@gmail.com>
stability: provisional
homepage: http://github.com/ekmett/recursion-schemes/
bug-reports: http://github.com/ekmett/recursion-schemes/issues
copyright: Copyright (C) 2008-2015 Edward A. Kmett
synopsis: Representing common recursion patterns as higher-order functions
description: Many recursive functions share the same structure, e.g. pattern-match on the input and, depending on the data constructor, either recur on a smaller input or terminate the recursion with the base case. Another one: start with a seed value, use it to produce the first element of an infinite list, and recur on a modified seed in order to produce the rest of the list. Such a structure is called a recursion scheme. Using higher-order functions to implement those recursion schemes makes your code clearer, faster, and safer. See README for details.
tested-with: GHC==8.0.2, GHC==8.2.2, GHC==8.4.4, GHC==8.6.5, GHC==8.8.4, GHC==8.10.7, GHC==9.0.2, GHC==9.2.8, GHC==9.4.8, GHC==9.6.5, GHC==9.8.2, GHC==9.10.1
build-type: Simple
extra-doc-files: docs/github-compression.png docs/flowchart.svg
extra-source-files: CHANGELOG.markdown .gitignore README.markdown
source-repository head
type: git
location: git://github.com/ekmett/recursion-schemes.git
flag template-haskell
description: About Template Haskell derivations
manual: True
default: True
library
other-extensions:
CPP
TypeFamilies
Rank2Types
FlexibleContexts
FlexibleInstances
GADTs
StandaloneDeriving
UndecidableInstances
hs-source-dirs: src
build-depends:
base >= 4.9 && < 5,
containers >= 0.4.2.1 && < 0.8,
comonad >= 4 && < 6,
data-fix >= 0.3.0 && < 0.4,
free >= 4 && < 6,
transformers >= 0.4.2.0 && < 1
if !impl(ghc >= 8.2)
build-depends: bifunctors >= 4 && < 6
-- Foldable module is first, so cabal repl loads it!
exposed-modules:
Data.Functor.Foldable
Data.Functor.Base
if flag(template-haskell)
build-depends:
template-haskell >= 2.11.0.0 && < 2.23,
th-abstraction >= 0.4 && < 0.8
exposed-modules:
Data.Functor.Foldable.TH
other-modules:
Paths_recursion_schemes
ghc-options: -Wall
if impl(ghc >= 8.6)
ghc-options: -Wno-star-is-type
default-language: Haskell2010
test-suite Expr
type: exitcode-stdio-1.0
main-is: Expr.hs
hs-source-dirs: examples
ghc-options: -Wall -threaded
default-language: Haskell2010
build-depends:
base,
HUnit <1.7,
recursion-schemes,
template-haskell,
transformers >= 0.2 && < 1
|