This is a big part, if not <i>the</i> most important part, of why I like Haskell. &quot;Purity&quot; is a giant stroke in the direction of using the least powerful language possible at all times (and the advanced types let you both declare the level of power you want and compose sub-languages of different powers together). You also often go deeper due to the large prevalence of deep or shallow embedded DSLs in the typed-functional languages.<p>In short, this is, to me, one of the most important principles of programming.