How fundamentally different are push-pull and arrowized FRP?

I want to study FRP in Haskell, but it’s a bit difficult to decide on a library to use.
Many seem to be dead attempts, some seem to have been resurrected (such as recent activity on Yampa).

From what I read, it seems that there are two “kinds” of FRP: push-pull FRP (like in Reactive-banana and Reflex) on one side and arrowized FRP (like in Yampa) on the other side. It seems that there also used to be some “classic FRP” at the time of Fran and FrTime, but I have not spotted any recent activity in these.

  • Are these two (or three) really fundamentally different approaches of FRP?

  • Is one of them outdated theory whereas the other would be the “stuff of the future”?

  • Or do they have to evolve in parallel, addressing different purposes?

  • Did I name the most prominent library of each category, or are there other options to consider (Sodium, Netwire, et al)?



I finally watched the [talk from Evan Czaplicki](https://www.youtube.com/watch?v=Agu6jipKfYw) recommended in the comments by J. Abrahamson. It is very interesting and did help clarify things up for me. I highly recommend it to anyone who found this question interesting.

1 Answer
1

Leave a Comment