3Synopsis: Higher-order Functional Reactive Programming
5 Interactive programs without callbacks or side-effects.
6 Functional Reactive Programming (FRP) uses composable events and time-varying
7 values to describe interactive systems as pure functions.
8 Just like other pure functional code, functional reactive code is easier
9 to get right on the first try, maintain, and reuse.
11 Reflex is a fully-deterministic, higher-order Functional Reactive Programming
12 interface and an engine that efficiently implements that interface.
14 <https://reflex-frp.org>
18Maintainer: ryan.trinkle@gmail.com
19Stability: Experimental
23homepage: https://reflex-frp.org
24bug-reports: https://github.com/reflex-frp/reflex/issues
31 GHC ==8.0.2 || ==8.2.2 || ==8.4.4 || ==8.6.5 || ==8.8.1,
34flag use-reflex-optimizer
35 description: Use the GHC plugin Reflex.Optimizer on some of the modules in the package. This is still experimental.
39flag use-template-haskell
40 description: Use template haskell to generate lenses
44flag debug-trace-events
45 description: Add instrumentation that outputs the stack trace of the definition of an event whenever it is subscribed to. Warning: It is very slow!
50 description: Use the primitive implementation of FastWeak in GHCJS; note that this requires GHCJS to be built with FastWeak and FastWeakBag present in the RTS, which is not the default
55 description: Enable debugging of spider internals
60 description: Enable debugging of event cycles
65 description: Use split these/semialign packages
70 default-language: Haskell2010
74 base >= 4.9 && < 4.14,
75 bifunctors >= 5.2 && < 5.6,
76 comonad >= 5.0.4 && < 5.1,
77 constraints-extras >= 0.3 && < 0.4,
78 containers >= 0.6 && < 0.7,
79 data-default >= 0.5 && < 0.8,
80 dependent-map >= 0.3 && < 0.4,
81 exception-transformers == 0.4.*,
83 monad-control >= 1.0.1 && < 1.1,
85 patch >= 0.0.1 && < 0.1,
86 prim-uniq >= 0.1.0.1 && < 0.3,
87 primitive >= 0.5 && < 0.8,
88 profunctors >= 5.3 && < 5.6,
92 semigroupoids >= 4.0 && < 6,
95 time >= 1.4 && < 1.10,
96 transformers >= 0.5.6.0 && < 0.6,
97 unbounded-delays >= 0.1.0.0 && < 0.2,
98 witherable >= 0.3 && < 0.4
101 build-depends: these >= 1 && <1.2,
102 semialign >=1 && <1.2,
103 monoidal-containers >= 0.6 && < 0.7
105 build-depends: these >= 0.4 && <0.9,
106 monoidal-containers == 0.4.0.0
109 Control.Monad.ReaderIO
111 Data.FastMutableIntMap,
117 Reflex.Adjustable.Class,
118 Reflex.BehaviorWriter.Base,
119 Reflex.BehaviorWriter.Class,
123 Reflex.DynamicWriter,
124 Reflex.DynamicWriter.Base,
125 Reflex.DynamicWriter.Class,
127 Reflex.EventWriter.Base,
128 Reflex.EventWriter.Class,
132 Reflex.Host.Headless,
134 Reflex.NotReady.Class,
135 Reflex.PerformEvent.Base,
136 Reflex.PerformEvent.Class,
137 Reflex.PostBuild.Base,
138 Reflex.PostBuild.Class,
143 Reflex.Requester.Base,
144 Reflex.Requester.Class,
146 Reflex.Spider.Internal,
148 Reflex.TriggerEvent.Base,
149 Reflex.TriggerEvent.Class,
154 patch:Data.Functor.Misc,
155 patch:Data.Patch as Reflex.Patch,
156 patch:Data.Patch.Class as Reflex.Patch.Class,
157 patch:Data.Patch.DMap as Reflex.Patch.DMap,
158 patch:Data.Patch.DMapWithMove as Reflex.Patch.DMapWithMove,
159 patch:Data.Patch.IntMap as Reflex.Patch.IntMap,
160 patch:Data.Patch.Map as Reflex.Patch.Map,
161 patch:Data.Patch.MapWithMove as Reflex.Patch.MapWithMove
163 ghc-options: -Wall -fwarn-redundant-constraints -fwarn-tabs -funbox-strict-fields -O2 -fspecialise-aggressively
165 if flag(debug-trace-events)
166 cpp-options: -DDEBUG_TRACE_EVENTS
168 bytestring >= 0.10.8 && < 0.11
170 if flag(use-reflex-optimizer)
171 cpp-options: -DUSE_REFLEX_OPTIMIZER
173 exposed-modules: Reflex.Optimizer
175 if flag(debug-propagation)
176 cpp-options: -DDEBUG -DDEBUG_TRACE_PROPAGATION -DDEBUG_TRACE_INVALIDATION
178 if flag(debug-cycles)
179 cpp-options: -DDEBUG_CYCLES
181 if flag(use-template-haskell)
182 cpp-options: -DUSE_TEMPLATE_HASKELL
184 dependent-sum >= 0.6 && < 0.8,
185 haskell-src-exts >= 1.16 && < 1.24,
186 haskell-src-meta >= 0.6 && < 0.9,
187 template-haskell >= 2.9 && < 2.16
190 other-extensions: TemplateHaskell
193 dependent-sum >= 0.6 && < 0.8
195 if flag(fast-weak) && impl(ghcjs)
196 cpp-options: -DGHCJS_FAST_WEAK
203 default-language: Haskell2010
204 type: exitcode-stdio-1.0
205 main-is: semantics.hs
207 ghc-options: -O2 -Wall -rtsopts
229 default-language: Haskell2010
230 type: exitcode-stdio-1.0
231 main-is: Reflex/Test/CrossImpl.hs
233 ghc-options: -O2 -Wall -rtsopts
251 default-language: Haskell2010
252 type: exitcode-stdio-1.0
259 , hlint (< 2.1 || >= 2.2.2) && < 3
263test-suite EventWriterT
264 default-language: Haskell2010
265 type: exitcode-stdio-1.0
266 main-is: EventWriterT.hs
281 build-depends: these-lens
287test-suite DebugCycles
288 default-language: Haskell2010
289 type: exitcode-stdio-1.0
290 main-is: DebugCycles.hs
292 ghc-options: -threaded
310 build-depends: these-lens, semialign
317 default-language: Haskell2010
318 type: exitcode-stdio-1.0
319 main-is: RequesterT.hs
337 build-depends: these-lens
345 default-language: Haskell2010
346 type: exitcode-stdio-1.0
347 main-is: Adjustable.hs
360 default-language: Haskell2010
361 type: exitcode-stdio-1.0
370 , monoidal-containers
379 build-depends: semialign, these-lens
387test-suite GC-Semantics
388 default-language: Haskell2010
389 type: exitcode-stdio-1.0
405 build-depends: semialign
413test-suite rootCleanup
414 default-language: Haskell2010
415 type: exitcode-stdio-1.0
416 main-is: rootCleanup.hs
431benchmark spider-bench
432 default-language: Haskell2010
433 type: exitcode-stdio-1.0
434 hs-source-dirs: bench test
436 ghc-options: -Wall -O2 -rtsopts
456benchmark saulzar-bench
457 default-language: Haskell2010
458 type: exitcode-stdio-1.0
459 hs-source-dirs: bench test
460 c-sources: bench-cbits/checkCapability.c
462 ghc-options: -Wall -O2 -rtsopts -threaded
485source-repository head
487 location: https://github.com/reflex-frp/reflex
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list