A *(term) for what happens when program designers try to build simple things (generally, with respect to implementability) on top of complex "primitives" instead of building the complex things on top of simple primitives.

The original example was the original _(Ada) rendezvous primitive, upon which Ada programmers built other synchronization mechanisms, whereas the simpler primitives to implement are semaphores; so that when programmers actually wanted portable semaphores, instead of getting a simple and cheap implementation of a simple concept, they got a complex and expensive implementation of it in terms of rendezvous!

Another example of it is the very concept of _(microkernel), that inverts the high-level concurrent agent programming model with the low-level resource management implementation.

The term was introduced to us in an article by the great _(Henry Baker) in <a href=
"http://www.pipeline.com/~hbaker1/CritLisp.html">"A Critique of DIN Kernel LISP"</a>.

Henry Hazlitt in his 1964 <a href="http://www.hazlitt.org/e-texts/morality/ch5.html">"Foundations of Morality"</a> reports use of the term "hysteron-proteron" for "an inversion of the true order of logical dependence, a reversal of cause and effect", or in other words <em>putting the cart before the horse</em>.