== Bad Examples == 

 Some of the examples in the "Examples" section are debatable at best, just plain wrong at worst. 

 * I'm not really sure why the author thinks that Java's Runnable.run interface is an abstraction inversion.  
 * The point about functors in the STL in C++ is wrong, assuming I'm understanding it properly.  The STL specifically allows function pointers to be used as functors, so there's generally no need to create a new class (unless you need multiple instances for some reason). 
 * The microkernel argument is a bit controversial, and the description does not explain the reason it is thought to be an abstraction inversion (the reader would have to actually read the cited sources to find that out). 
 * The Scheme example is useless to any reader that is not intimately familiar with Scheme. 
 * Likewise, the Subversion example does not provide any value to a reader that is not familiar with the implementation details of Subversion, since none are provided. 

 The other examples seem relatively reasonable.  However, I think a more concrete example (perhaps including actual code or at least pseudo-code) for this would be extremely helpful to readers.