The &quot;law&quot; of leaky abstractions is bollocks. Haskell, Idris and the like demonstrate this quite thoroughly, by offering abstractions that you can only implement if you provide <i>proof</i> that your implementation satisfies the assumptions of the abstraction.<p>I&#x27;m broadly in agreement with a lot of haskeldownvot5&#x27;s views (if not his tone); I think laziness is, with the benefit of hindsight, a mistake. But it&#x27;s not a case of ivory-tower PhDs forgetting that programs run on real hardware; if anything it&#x27;s the opposite, an assumption that our tools and reasoning would not be powerful enough to allow us to efficiently manage computation explicitly.