Ron Pressler discusses and compares the various techniques of dealing with concurrency and IO in both pure functional and imperative programming languages.