Interaction between generators and type narrowing
Interesting quirky interaction between generators and type narrowing. Generators are fail fast but the compiler doesn't understand that. You can return after the yield so the compiler understands, though not sure if its the right thing to do here
