Optimize (and fix?) stdAttributeChanges
stdAttributeChanges in iTasks.UI.Editor.Modifiers currently looks like this:
stdAttributeChanges :: !String !Bool !EditState !Bool !EditState -> [UIAttributeChange] stdAttributeChanges typename optional om nvalid nm | om === nm =  //Nothing to change | otherwise = [SetAttribute k v \\ (k,v) <- 'DM'.toList (stdAttributes typename nvalid optional nm)]
So we set all new attributes when there is a change, and never delete attributes. It seems to me that:
- This can be optimized by only setting the attributes that changed.
- It may be incorrect that there is no
DelAttributefor the attributes that existed in the old state but not in the new state?