Why GitHub used Haskell for Semantic
&gt; An example of this is the concept of resumable exceptions. During Semantic&#x27;s interpretation passes, invalid code (unbound variables, type errors, infinite recursion) is recognized and handled based on the pass&#x27;s calling context. ... Porting this to Java would require tremendous abuse of the try&#x2F;catch&#x2F;finally mechanism, as Java provides no way to separate control flow&#x27;s policy and mechanism. And given Go&#x27;s lack of exceptions, such a feature would be entirely impossible.<p>Not knowing much about FP, It&#x27;d be great to see a more in-depth article explaining this problem domain a bit more and showing some side-by-side examples of Haskell&#x27;s specialized call sites compared to a Java try&#x2F;except&#x2F;finally solution (although Python would be a better procedural exception-based language to compare to)<p>One of the main reasons I don&#x27;t care much about Haskell is because without any side-by-side comparisons of Haskell vs &lt;insert procedural language&gt; I don&#x27;t understand what the Haskell advantages are, and I don&#x27;t know when I&#x27;m dealing with a problem space where Haskell would help me.