Functional Reactive Programming (FRP) is often introduced by discussing events and behaviors, and how to transform and mix them. But once you understand the primitives, what do you do with them? Where do the first events come from, and how do you wire these parts into a larger whole?
FRP promises benefits in more domains than just user interfaces, so let's take a look at Reflex outside its most common habitat of web frontends. There's now a fairly up-to-date version of Reflex on Hackage, so we can play with it right away and leave GHCjs, Reflex-DOM, special build tools, and the custom nix frameworks for later.
An FRP network of events and behaviors runs inside a library called a
host, which interfaces between the FRP network and the outside
world. Using an interactive OpenGL program as our example, we'll
explore how a slightly larger reactive program hangs together, and how
it uses the host's features to do what it needs to do.
Specifically, I'll need to be able to say things like
X is an
Applicative and not spend a whole lot of time on the details.