Principles of Reactive Programming by Erik Meijer, Martin Odersky, Roland Kuhn