Introduction to haskell