Bidirectional Programming, Data Synchronization, View Updates, Functional Programming