title: What is a "multisorted algebra", and how do I use it to solve "real problems"?
body: <p>Apparently, Alexander Stepanov has stated the following in an <a href="http://www.stlport.org/resources/StepanovUSA.html" rel="noreferrer">interview</a>:</p>
  
  <blockquote>“I find OOP [object-oriented programming] technically unsound. It attempts to decompose the world in terms of interfaces that vary on a single type. <b><I>To deal with the real problems you need multisorted algebras - families of interfaces that span multiple types.</I></b>” <I>[Emphasis added.]</I></blockquote>
  
  <p>Ignoring his statement regarding OOP for a moment, what are "multisorted algebras", beyond his terse definition, and can you give a practical example of how they are used (in the language of your choice)?</p>