Deleting class leaves other concrete classes intact.
a +-- A <-- delete this <-- b.B b +-- B --> a.A
becomes:
b +-- B
Deleting class removes other obsolete classes.
Deleting class deletes its features and preserves package and siblings.
a +-- A <-- delete this | +-- a +-- B
a +-- B
Deleting class leaves other concrete features intact.
a +-- A <-- delete this +-- a <-- b.B.b b +-- B +-- b --> a.A.a
b +-- B +-- b
Deleting class removes obsolete features.
Deleting class preserves package and siblings.
a +-- A <-- delete this +-- B
Deleting feature preserves class and siblings.
a +-- A +-- a <-- delete this +-- b
a +-- A +-- b
Deleting package really deletes it.
a <-- delete this
Deleting feature leaves other concrete features intact.
a +-- A +-- a <-- delete this <-- b.B.b b +-- B +-- b --> a.A.a
a +-- A b +-- B +-- b
Deleting feature removes obsolete features.
a +-- A
Deleting package deletes its classes.
a <-- delete this +-- A
Deleting package leaves other concrete packages intact.
a <-- delete this <-- b b --> a
b
Deleting package removes obsolete non-concrete packages.
Deleting single class deletes its features and its package.
a +-- A <-- delete this +-- a
Deleting single class deletes its package.
a +-- A <-- delete this
Deleting single feature of single class deletes entire package.
a +-- A +-- a <-- delete this