Chapter 7 - generators and coroutines ======================================================================================================================= 1. Create a generator similar to `itertools.islice()` that allows for a negative step so you can execute `some_list[20:10:-1]`. 2. Create a class that wraps a generator so it becomes sliceable by using `itertools.islice()` internally. 3. Write a generator for the Fibonacci numbers. 4. Write a generator that uses the sieve of Eratosthenes to generate prime numbers.