Starting g1
Yielded g1 ham
Starting g2
Yielded g2 spam
Finishing g2
Finishing g1
Traceback (most recent call last):
  File "test5.py", line 23, in <module>
    for x in g1():
  File "test5.py", line 9, in g1
    yield from g2()
  File "test5.py", line 18, in g2
    raise ValueError("hovercraft is full of eels")
ValueError: hovercraft is full of eels
