Exercise 4-8 (Added Either.sequence and traverse)