Understanding the Principles of Functional Reactive Programming — Programming Keynou