for writing Haskell programs