I don&#x27;t agree with pron overall, but he does have a point. Termination and algorithmic complexity do matter, and the techniques Haskell programmers advocate for reasoning about programs have a tendency to sweep theese concerns under the rug. This is in part why I&#x27;ve switched to Standard ML, in spite of its annoyances: No purity, higher kinds, first-class existentials or polymorphic recursion. And no mature library ecosystem. But I get a sane cost model for calculating the time complexity of algorithms. And, when I need laziness, I can carefully control how much laziness I want. Doing the converse in Haskell is much harder, and you get no help whatsoever from the type system.<p>As an example, consider the humble cons list type constructor. Looks like the free monoid, right? Well, wrong. The free monoid is a type constructor of <i>finite</i> sequences, and Haskell lists are potentially infinite. But even if we consider only finite lists, as in Standard ML or Scheme, the problem remains that, while list concatenation is associative, it&#x27;s much less efficient when used left-associatively than when used right-associatively. The entire point to identifying a monoid structure is that it gives you the freedom to reassociate the binary operation however you want. If using this “freedom” will utterly destroy your program&#x27;s performance, then you probably won&#x27;t want to use this freedom much - or at least I know I wouldn&#x27;t. So, personally, I wouldn&#x27;t provide a Monoid instance for cons lists. Instead, I would provide a Monoid instance for catenable lists. [0]<p>By the way, this observation was made by Stepanov long ago: “That is the fundamental point: algorithms are defined on algebraic structures.” [1] This is the part Haskellers acknowledge. Stepanov then continues: “It took me another couple of years to realize that you have to extend the notion of structure by adding complexity requirements to regular axioms.” [1]<p>Of course, none of this justifies pron&#x27;s suspicion of linguistic models of computation.<p>[0] <a href="http:&#x2F;&#x2F;www.westpoint.edu&#x2F;eecs&#x2F;SiteAssets&#x2F;SitePages&#x2F;Faculty%20Publication%20Documents&#x2F;Okasaki&#x2F;focs95cat.pdf" rel="nofollow">http:&#x2F;&#x2F;www.westpoint.edu&#x2F;eecs&#x2F;SiteAssets&#x2F;SitePages&#x2F;Faculty%2...</a><p>[1] <a href="http:&#x2F;&#x2F;stlport.org&#x2F;resources&#x2F;StepanovUSA.html" rel="nofollow">http:&#x2F;&#x2F;stlport.org&#x2F;resources&#x2F;StepanovUSA.html</a>