I'm currently reading the documentation of WebSharper. In the section about FRP, it states:
Functional Reactive Programming (FRP) typically provides an Event type for event streams and a Behavior type for time-varying values, together with useful combinators on those.
...
However, for now we decided to avoid implementing FRP. Instead, we focus on a subset of functionality, defining time-varying View values similar to Behaviors, but without support for real-time sampling. Event streams are left for the user to tackle using callbacks or third-party libraries. This is a vast simplification over FRP and is much easier to implement efficiently.
As weak pointers become available in JavaScirpt, this decision might be revised, especially in light of OCaml React success.
In the more immediate future, we intend to provide Concurrent ML combinators to better support dealing with event streams and improve composition of Components.
However, I'm not sure what exactly is the difference between "Event type" and "Behavior type" described here. I Googled some articles/tutorials, but they don't seem to be very explicit on this either.
I'm not sure what I am missing out by not having "Event" in WebSharper's implementation.
Sorry if this question sounds fundamental. I'm not familiar with concepts related to FRP.
--
EDIT: I think I found the answer to my doubt on what is amiss without event streams, at FRP - Event streams and Signals - what is lost in using just signals?. The main points are:
event streams allow for accumulative updates, while behaviors can only depend on the current value of the observed elements.
if event and behavior are both implemented, they allow for recursion within the system.