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.5,
81 exception-transformers == 0.4.*,
83 mmorph >= 1.0 && < 1.2,
84 monad-control >= 1.0.1 && < 1.1,
86 patch >= 0.0.1 && < 0.1,
87 prim-uniq >= 0.1.0.1 && < 0.3,
88 primitive >= 0.5 && < 0.8,
89 profunctors >= 5.3 && < 5.6,
93 semigroupoids >= 4.0 && < 6,
96 time >= 1.4 && < 1.10,
97 transformers >= 0.5.6.0 && < 0.6,
98 unbounded-delays >= 0.1.0.0 && < 0.2,
99 witherable >= 0.3 && < 0.4
102 build-depends: these >= 1 && <1.2,
103 semialign >=1 && <1.2,
104 monoidal-containers >= 0.6 && < 0.7
106 build-depends: these >= 0.4 && <0.9,
107 monoidal-containers == 0.4.0.0
110 Control.Monad.ReaderIO
112 Data.FastMutableIntMap,
118 Reflex.Adjustable.Class,
119 Reflex.BehaviorWriter.Base,
120 Reflex.BehaviorWriter.Class,
124 Reflex.DynamicWriter,
125 Reflex.DynamicWriter.Base,
126 Reflex.DynamicWriter.Class,
128 Reflex.EventWriter.Base,
129 Reflex.EventWriter.Class,
133 Reflex.Host.Headless,
135 Reflex.NotReady.Class,
136 Reflex.PerformEvent.Base,
137 Reflex.PerformEvent.Class,
138 Reflex.PostBuild.Base,
139 Reflex.PostBuild.Class,
144 Reflex.Requester.Base,
145 Reflex.Requester.Class,
147 Reflex.Spider.Internal,
149 Reflex.TriggerEvent.Base,
150 Reflex.TriggerEvent.Class,
155 patch:Data.Functor.Misc,
156 patch:Data.Patch as Reflex.Patch,
157 patch:Data.Patch.Class as Reflex.Patch.Class,
158 patch:Data.Patch.DMap as Reflex.Patch.DMap,
159 patch:Data.Patch.DMapWithMove as Reflex.Patch.DMapWithMove,
160 patch:Data.Patch.IntMap as Reflex.Patch.IntMap,
161 patch:Data.Patch.Map as Reflex.Patch.Map,
162 patch:Data.Patch.MapWithMove as Reflex.Patch.MapWithMove
164 ghc-options: -Wall -fwarn-redundant-constraints -fwarn-tabs -funbox-strict-fields -O2 -fspecialise-aggressively
166 if flag(debug-trace-events)
167 cpp-options: -DDEBUG_TRACE_EVENTS
169 bytestring >= 0.10.8 && < 0.11
171 if flag(use-reflex-optimizer)
172 cpp-options: -DUSE_REFLEX_OPTIMIZER
174 exposed-modules: Reflex.Optimizer
176 if flag(debug-propagation)
177 cpp-options: -DDEBUG -DDEBUG_TRACE_PROPAGATION -DDEBUG_TRACE_INVALIDATION
179 if flag(debug-cycles)
180 cpp-options: -DDEBUG_CYCLES
182 if flag(use-template-haskell)
183 cpp-options: -DUSE_TEMPLATE_HASKELL
185 dependent-sum >= 0.6 && < 0.8,
186 haskell-src-exts >= 1.16 && < 1.24,
187 haskell-src-meta >= 0.6 && < 0.9,
188 template-haskell >= 2.9 && < 2.16
191 other-extensions: TemplateHaskell
194 dependent-sum >= 0.6 && < 0.8
196 if flag(fast-weak) && impl(ghcjs)
197 cpp-options: -DGHCJS_FAST_WEAK
204 default-language: Haskell2010
205 type: exitcode-stdio-1.0
206 main-is: semantics.hs
208 ghc-options: -O2 -Wall -rtsopts
230 default-language: Haskell2010
231 type: exitcode-stdio-1.0
232 main-is: Reflex/Test/CrossImpl.hs
234 ghc-options: -O2 -Wall -rtsopts
252 default-language: Haskell2010
253 type: exitcode-stdio-1.0
261 build-depends: hlint >= 3
263 build-depends: hlint (< 2.1 || >= 2.2.2) && < 3
267test-suite EventWriterT
268 default-language: Haskell2010
269 type: exitcode-stdio-1.0
270 main-is: EventWriterT.hs
285 build-depends: these-lens
291test-suite DebugCycles
292 default-language: Haskell2010
293 type: exitcode-stdio-1.0
294 main-is: DebugCycles.hs
296 ghc-options: -threaded
314 build-depends: these-lens, semialign
321 default-language: Haskell2010
322 type: exitcode-stdio-1.0
323 main-is: RequesterT.hs
341 build-depends: these-lens
349 default-language: Haskell2010
350 type: exitcode-stdio-1.0
357 default-language: Haskell2010
358 type: exitcode-stdio-1.0
359 main-is: Adjustable.hs
372 default-language: Haskell2010
373 type: exitcode-stdio-1.0
382 , monoidal-containers
391 build-depends: semialign, these-lens
399test-suite GC-Semantics
400 default-language: Haskell2010
401 type: exitcode-stdio-1.0
417 build-depends: semialign
425test-suite rootCleanup
426 default-language: Haskell2010
427 type: exitcode-stdio-1.0
428 main-is: rootCleanup.hs
443benchmark spider-bench
444 default-language: Haskell2010
445 type: exitcode-stdio-1.0
446 hs-source-dirs: bench test
448 ghc-options: -Wall -O2 -rtsopts
468benchmark saulzar-bench
469 default-language: Haskell2010
470 type: exitcode-stdio-1.0
471 hs-source-dirs: bench test
472 c-sources: bench-cbits/checkCapability.c
474 ghc-options: -Wall -O2 -rtsopts -threaded
497source-repository head
499 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