&gt; How do you have a large set of language features with them not interacting?<p>The ability to write interesting programs in a language comes from the interaction between its features. The real problem is features that interact <i>in unpleasant ways</i>, which almost always results from a lack of foresight on the language designer&#x27;s part.<p>&gt; In C++, RAII interacts with exceptions, which is the point but isn&#x27;t exactly pleasant.<p>The interaction between control effects (of which exceptions are a particular case) and substructural types (of which C++&#x27;s RAII is a very broken particular case) is certainly nontrivial [0], but this doesn&#x27;t mean we should give up on either feature. Control effects make it easier to design and implement extensible programs. Substructural types allow you to safely manipulate ephemeral resources, such as file handles, database connections or GUI objects.<p>[0] <a href="http:&#x2F;&#x2F;users.eecs.northwestern.edu&#x2F;~jesse&#x2F;pubs&#x2F;substructural-control&#x2F;CtlURAL-long.pdf" rel="nofollow">http:&#x2F;&#x2F;users.eecs.northwestern.edu&#x2F;~jesse&#x2F;pubs&#x2F;substructural...</a>