This is why ML and Haskell can be highly advanced languages without inheritance. Subtyping, by the way, is evil in the type theories (causes more problems than benefits, really)... and so it's no surprise that inheritance sucks in practice.<p>Yes, nitpickers will point out that Ocaml has objects. No one uses them. Also, Haskell has "class extension" for type classes. But, that's much closer to the "composition" that Joshua Bloch talks about in his book than true inheritance.