Parallel and Concurrent Programming in Haskell