Learning Haskell through the famous 99 problems