A hands on haskell and literate haskell tutorial