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

NickKeighley

Changling might be has-a built in terms of implemented-in-terms-of-a.