-
Notifications
You must be signed in to change notification settings - Fork 2
/
rec-def.cabal
126 lines (112 loc) · 4.12 KB
/
rec-def.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
cabal-version: 2.4
name: rec-def
version: 0.2.2
synopsis: Recursively defined values
description:
This library provides safe APIs that allow you to define and calculate
values recursively, and still get a result out:
.
> let s1 = RS.insert 23 s2
> s2 = RS.insert 42 s1
> in RS.get s1
.
will not loop, but rather produces the set @fromList [23,42]@
.
See "Data.Recursive.Examples" for more examples, or just browse the modules
.
* "Data.Recursive.Bool"
* "Data.Recursive.Set"
* "Data.Recursive.Map"
* "Data.Recursive.DualBool"
.
More APIs (e.g. for maps or 'Natural') can be added over time, as need and good
use-cases arise.
.
For the (unsafe) building blocks to build such APIs, see
.
* "Data.Propagator.Purify" for the wrapper that turns an IO-implemented
propagator into a pure data structure
* "Data.Propagator.Naive" for a naive propagator implementation
* "Data.Propagator.P2" for a smarter propagator implementation for
the two-point lattice, i.e. 'Bool'
.
The library is not (yet) focussed on performance, and uses a rather naive
propagator implementation. Expect this to be slow if you have large graphs.
This may be improved in the future (e.g. by propagating only deltas, and
accumulating deltas before applying a function), but for now the focus is on
foremost providing this capability in the first place and getting the
user-facing API right.
homepage: https://github.com/nomeata/haskell-rec-def
bug-reports: https://github.com/nomeata/haskell-rec-def/issues/new
license: BSD-2-Clause
license-file: LICENSE
author: Joachim Breitner
maintainer: mail@joachim-breitner.de
copyright: 2022 Joachim Breitner
category: Data
extra-source-files:
CHANGELOG.md
README.md
examples.hs
tested-with: GHC==9.8.2, GHC==9.6.1, GHC==9.4.4, GHC==9.2.7, GHC==9.0.2, GHC==8.10.7, GHC==8.8.4
library
exposed-modules: Data.Recursive.Examples
exposed-modules: Data.Recursive.Bool
exposed-modules: Data.Recursive.DualBool
exposed-modules: Data.Recursive.Set
exposed-modules: Data.Recursive.Map
exposed-modules: Data.Recursive.Internal
exposed-modules: Data.POrder
exposed-modules: System.IO.RecThunk
exposed-modules: Data.Propagator.Purify
exposed-modules: Data.Propagator.Naive
exposed-modules: Data.Propagator.Class
exposed-modules: Data.Propagator.P2
build-depends: base >= 4.9 && < 5
build-depends: containers >= 0.5.11 && < 0.8
ghc-options: -Wall
default-language: Haskell2010
test-suite doctest
type: exitcode-stdio-1.0
main-is: doctests.hs
default-language: Haskell2010
ghc-options: -threaded
ghc-options: -Wall
hs-source-dirs: tests
build-depends: rec-def
build-depends: base >= 4.9 && < 5
build-depends: doctest
build-depends: QuickCheck
build-depends: template-haskell
test-suite spaceleak
type: exitcode-stdio-1.0
main-is: spaceleak.hs
hs-source-dirs: tests
default-language: Haskell2010
ghc-options: -Wall
build-depends: rec-def
build-depends: base >= 4.9 && < 5
build-depends: containers >= 0.5.11 && < 0.8
test-suite dejafu
type: exitcode-stdio-1.0
other-modules: System.IO.RecThunk
other-modules: Data.POrder
other-modules: Data.Propagator.Class
other-modules: Data.Propagator.Naive
other-modules: Data.Propagator.P2
main-is: dejafu.hs
hs-source-dirs: tests .
default-language: Haskell2010
ghc-options: -threaded
ghc-options: -Wall
cpp-options: -DDEJAFU
build-depends: base >= 4.9 && < 5
build-depends: containers >= 0.5.11 && < 0.8
build-depends: concurrency ^>= 1.11.0.2
build-depends: dejafu ^>= 2.4.0.3
build-depends: tasty
build-depends: tasty-dejafu ^>= 2.1.0.0
build-depends: random
source-repository head
type: git
location: git://github.com/nomeata/haskell-rec-def