If a widget is patched its old attributes are not removed (when they aren't present in the new widget), only the existing ones are overwritten. This might require the constructors of SingleWidget and Container to constrain attributes to the clear operation, in addition to construct and set.
I think now that the clear operation is not feasible to use, and that the widget should be fully replaced in case some properties have been removed when patching.
If a widget is patched its old attributes are not removed (when they aren't present in the new widget), only the existing ones are overwritten. This might require the constructors of
SingleWidget
andContainer
to constrain attributes to the clear operation, in addition to construct and set.