Designing software in language that can't let you reason about your code is like building a house without architect. Fixing something afterward will be very hard. Very hard because you will not be able to measure the impact of a change. We can use a very simple definition for equational…

We are not going to transform code into curry but rather try to curry some code. As a former C# developer, when I started Haskell, I felt like functions were very differents from what I was used to see in object oriented languages. I just forgot maths:  f : \mathbb{Z}…