Laziness helps a lot with composition, when designing an interface you can have functions with arguments that won&#x27;t be used by every implementation but have no performance overhead.<p>Although, most of the time laziness is only useful at a single level, and that kind of laziness can be easily done in languages like C++ with a much lower overhead.<p>It&#x27;s a bit sad that GHC has so many advanced code optimization methods but performance is still lacking.<p>Yes, you can write high-performance Haskell but it requires expertise or huge amount of profiling and time.<p>On the other hand, you can easily write faster (speed-wise) prototypes in C++ and get superior performance almost all the time.<p>List of ways to write performant Haskell:
<a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=10209798" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=10209798</a>