updated with monads chapter exercises and streams chapter code