add haskell hard way part