“This would be so much better in Elm!”, is something I can’t seem to stop saying out loud since I started working in React and Redux. Though…if I’m really honest, I’ve never actually built anything “proper” in Elm.

At the same time, the more I delve into the world of functional programming, the more I notice that almost everything that languages like Elm support have parallells in statically typed object-oriented languages like C# and Typescript. It’s just that in some cases they look very different.

In this post I’m going to take an example from the Redux documentation, show the same thing in Elm, demonstrate the advantages that the Elm equivalent has, and finally see if I can tweak the Redux version to mirror the same benefits.