Algebraic Data Types in four languages

How to model the data in a concise way using Haskell, Scala, Rust and TypeScript.

blog.softwaremill.com