fix is an interesting Haskell function that provides us with the ability to add recursion to non recursive functions.