added why haskell