Added Either.map, closes #27