-
Notifications
You must be signed in to change notification settings - Fork 8
/
sirea-core.cabal
85 lines (69 loc) · 2.44 KB
/
sirea-core.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: sirea-core
Version: 0.1
Cabal-Version: >= 1.2
Synopsis: Simply Reactive! Declarative orchestration in Haskell with RDP.
Category: Reactivity
Description:
Reactive Demand Programming is an effectful, declarative, reactive
model for orchestration of open systems. Sirea implements RDP in
Haskell. This particular module is the `core` of Sirea, just the
basic behaviors and implementation. Other packages will support
specific domains or problems (UI, state, video, sound, etc.).
RDP is similar to arrowized FRP, excepting how it manages effects
and state. RDP behaviors can encapsulate access to resources and
services, observing and influencing them through signals. State is
modeled as an external service. (By comparison, FRP models state
as an internal resource with event accumulators or integrals, but
is purely functional. FRP does not encapsulate access to shared
state or resources.)
RDP is effectful, but not imperative. The constraints on effects
ensure RDP achieves many reasoning, refactoring, and abstraction
benefits of pure functional code. In particular, constraints for
declarative expression are provided: commutative, idempotent, and
associative expression; simple logical composition of effects as
sets of concurrent demands.
Arrowized composition of behaviors protects RDP properties. Sirea
developers, however, must be disciplined when adding new effects
modules: many hooks between RDP and Haskell IO are not RDP safe.
For more information, see the github Readme and linked pages.
Author: David Barbour
Maintainer: dmbarbour@gmail.com
Homepage: http://github.com/dmbarbour/Sirea
Package-Url:
Copyright: (c) 2012 by David Barbour
License: BSD3
Stability: experimental
build-type: Simple
Library
hs-Source-Dirs: src
Build-Depends: base>4.5
,parallel>3
,time
Exposed-Modules:
Sirea.Prelude
Sirea.Time
Sirea.Signal
Sirea.Behavior
Sirea.Bdeep
Sirea.Build
Sirea.PCX
Sirea.Partition
Sirea.B
Sirea.BCX
Sirea.Link
Sirea.ORef
Sirea.UnsafeOnUpdate
Sirea.Clock
Sirea.Trans.Static
Sirea.Internal.STypes
Sirea.Internal.DiscreteTimedSeq
Sirea.Internal.SigType
Sirea.Internal.LTypes
Sirea.Internal.BTypes
Sirea.Internal.PTypes
Sirea.Internal.BImpl
Sirea.Internal.BCross
Sirea.Internal.BCompile
Sirea.Internal.Thread
Sirea.Internal.BDynamic
ghc-options: -threaded -Wall -fno-warn-orphans