Coming from the videogames industry I got fascinated by functional reactive programming, and started learning Haskell and FRP a couple of years ago.
C# is still my favorite language for writing production software, and it's great to see that my studies of Haskell & FRP will now help me write better reactive C# code. I did not expect this FRP hobby of mine to actually be useful in C#! So many thanks guys!
Now the FRP systems I looked at (Fran, Yampa, Fruit, Reactive) are side effect free; it will be interesting to see how easy it is to master Rx in the presence of side effects.
One thing that seems unclear to me is if Rx uses times at which events happen, and how they are sorted. For example, in Conal Elliott's Reactive library you have a merge function that merges two event streams, ordering them by occurrence time, left-biased
if two events happen at exactly the same time. Not sure how Rx handles that; I guess because it embraces side effects, it doesn't really care, since it is fully push based, what is pushed first is handled first?