-
Notifications
You must be signed in to change notification settings - Fork 65
/
free.cabal
129 lines (118 loc) · 4.02 KB
/
free.cabal
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
name: free
category: Control, Monads
version: 5.2
license: BSD3
cabal-version: 1.18
license-file: LICENSE
author: Edward A. Kmett
maintainer: Edward A. Kmett <[email protected]>
stability: provisional
homepage: http://github.com/ekmett/free/
bug-reports: http://github.com/ekmett/free/issues
copyright: Copyright (C) 2008-2015 Edward A. Kmett
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.6
, GHC == 9.8.4
, GHC == 9.10.1
, GHC == 9.12.1
synopsis: Monads for free
description:
Free monads are useful for many tree-like structures and domain specific languages.
.
If @f@ is a 'Functor' then the free 'Monad' on @f@ is the type
of trees whose nodes are labeled with the constructors of @f@. The word
\"free\" is used in the sense of \"unrestricted\" rather than \"zero-cost\":
@Free f@ makes no constraining assumptions beyond those given by @f@ and the
definition of 'Monad'. As used here it is a standard term from the
mathematical theory of adjoint functors.
.
Cofree comonads are dual to free monads. They provide convenient ways to talk
about branching streams and rose-trees, and can be used to annotate syntax
trees. The cofree comonad can be seen as a stream parameterized by a 'Functor'
that controls its branching factor.
.
More information on free monads, including examples, can be found in the
following blog posts:
<https://ekmett.github.io/reader/2008/monads-for-free/>
<https://ekmett.github.io/reader/2011/free-monads-for-less/>
build-type: Simple
extra-source-files:
.gitignore
.hlint.yaml
.vim.custom
README.markdown
CHANGELOG.markdown
doc/proof/Control/Comonad/Cofree/*.md
doc/proof/Control/Comonad/Trans/Cofree/*.md
examples/free-examples.cabal
examples/LICENSE
examples/*.hs
examples/*.lhs
extra-doc-files:
examples/*.hs
examples/*.lhs
source-repository head
type: git
location: git://github.com/ekmett/free.git
library
hs-source-dirs: src
default-language: Haskell2010
other-extensions:
MultiParamTypeClasses
FunctionalDependencies
FlexibleInstances
UndecidableInstances
Rank2Types
GADTs
build-depends:
base >= 4.9 && < 5,
comonad >= 5.0.8 && < 6,
containers >= 0.5.7.1 && < 0.8,
distributive >= 0.5.2 && < 1,
exceptions >= 0.10.4 && < 0.11,
indexed-traversable >= 0.1.1 && < 0.2,
mtl >= 2.2.2 && < 2.4,
profunctors >= 5.6.1 && < 6,
semigroupoids >= 5.3.5 && < 7,
th-abstraction >= 0.4.2.0 && < 0.8,
transformers >= 0.5 && < 0.7,
transformers-base >= 0.4.5.2 && < 0.5,
template-haskell >= 2.11 && < 2.24
if !impl(ghc >= 8.2)
build-depends: bifunctor-classes-compat >= 0.1 && < 0.2
exposed-modules:
Control.Applicative.Free
Control.Applicative.Free.Fast
Control.Applicative.Free.Final
Control.Applicative.Trans.Free
Control.Alternative.Free
Control.Alternative.Free.Final
Control.Comonad.Cofree
Control.Comonad.Cofree.Class
Control.Comonad.Trans.Cofree
Control.Comonad.Trans.Coiter
Control.Monad.Free
Control.Monad.Free.Ap
Control.Monad.Free.Church
Control.Monad.Free.Class
Control.Monad.Free.TH
Control.Monad.Trans.Free
Control.Monad.Trans.Free.Ap
Control.Monad.Trans.Free.Church
Control.Monad.Trans.Iter
ghc-options: -Wall -Wcompat -Wnoncanonical-monad-instances
if !impl(ghc >= 8.8)
ghc-options: -Wnoncanonical-monadfail-instances
if impl(ghc >= 9.0)
-- these flags may abort compilation with GHC-8.10
-- https://gitlab.haskell.org/ghc/ghc/-/merge_requests/3295
ghc-options: -Winferred-safe-imports -Wmissing-safe-haskell-mode
x-docspec-extra-packages: tagged