A user interface enables a person to enter data, which are values for attributes, into an application. A good interface allows the user to change his mind while entering these values. The user might choose a new value or restore a previous value with an "undo" feature. If an interface is to have this flexibility, the underlying data structures must be designed to facilitate these changes in attribute values with minimum execution overhead.
/lp/association-for-computing-machinery/a-change-of-mind-or-the-story-of-fuzzies-in-purgatory-0igw1pMQHu