Taken from Erik Meijer's talk in "Principles of Reactive programming" at Coursera.org