I was looking at legacy code with an eye (nose?) for code smells and saw several things that didn't seem to be covered by The Usual Smells.
- Liar- a class/method that doesn't do what its name suggests
- Changling- a child class that doesn't resemble its parent class
- Impurity- methods that look like pure functions but have side effects
Changling might be has-a built in terms of implemented-in-terms-of-a.