-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathfree-operational.cabal
83 lines (75 loc) · 3.26 KB
/
free-operational.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
name: free-operational
category: Control
version: 0.5.0.0
build-type: Simple
cabal-version: >=1.8
synopsis: Operational Applicative, Alternative, Monad and MonadPlus from free types.
description:
A reimplementation of the @operational@ package
(<http://hackage.haskell.org/package/operational>) using free monads
(from <http://hackage.haskell.org/package/free>). This implements
ideas discussed here:
.
* <http://stackoverflow.com/questions/14263363/is-operational-really-isomorphic-to-a-free-monad>
.
* <http://www.reddit.com/r/haskell/comments/17a33g/free_functors_the_reason_free_and_operational_are/>
.
To understand the basic concepts you can do no better than read
Heinrich Apfelmus' @operational@ tutorial:
.
* <http://apfelmus.nfshost.com/articles/operational-monad.html>
.
In addition to that, this package supplies @operational@-style
modules for 'Applicative', 'Alternative' and 'MonadPlus'.
'Applicative' and 'Alternative' programs easily admit of static
analysis. See these references for discussion and examples:
.
* <http://gergo.erdi.hu/blog/2012-12-01-static_analysis_with_applicatives/> (discussion: <http://www.reddit.com/r/haskell/comments/143wpd/static_analysis_with_applicatives/>)
.
* <http://paolocapriotti.com/blog/2013/04/03/free-applicative-functors/> (discussion: <http://www.reddit.com/r/haskell/comments/1bnql3/free_applicative_functors_icfp_submission/>)
.
See "Control.Applicative.Operational" for the bulk of the documentation.
"Control.Alternative.Operational" also has some significant examples.
license: BSD3
license-file: LICENSE
author: Luis Casillas
maintainer: [email protected]
copyright: 2013 Luis Casillas
bug-reports: https://github.com/sacundim/free-operational/issues
source-repository head
type: git
location: https://github.com/sacundim/free-operational
-- Build the properties test if we're building tests
flag test-properties
default: False
manual: True
test-suite tests
type: exitcode-stdio-1.0
hs-source-dirs: tests
Main-is: Properties.hs
if !flag(test-properties)
buildable: False
else
build-depends: base ==4.*,
mtl >=2,
transformers >=0.3,
free-operational >=0.3,
test-framework >=0.6,
test-framework-quickcheck2 >=0.2,
QuickCheck >=2.4,
checkers ==0.3.1
library
exposed-modules: Control.Operational.Class,
Control.Operational.Instruction,
Control.Applicative.Operational,
Control.Alternative.Operational,
Control.Monad.Operational,
Control.Monad.Operational.Simple,
Control.Monad.Trans.Operational,
Control.MonadPlus.Operational
build-depends: base == 4.*,
transformers >=0.3,
mtl >=2,
free >=3.3,
comonad-transformers >=3.0,
kan-extensions >=3.7 && <3.8