-
Notifications
You must be signed in to change notification settings - Fork 65
/
free.cabal
128 lines (117 loc) · 4 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
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.5
, GHC == 9.8.2
, GHC == 9.10.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.23
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