haskell course project