https://github.uio.no/IN3040/H20/blob/master/exercises/ML_exercise1_haskell.md