Functional Programming in TypeScript

In this article, we show how to use TypeScript to implement Haskell concepts like algebraic data types, higher-kinded types, tagless final, and more.