@0,1,2⦊fn main() ⦉@0,1,2{
    let @0,1,2⦊mut generator⦉@0,1,2 = || {
        yield 1;
        return "foo"
    };
    match @0,1,2⦊Pin::new(&mut generator).resume(()) {
        GeneratorState::Yielded(1)⦉@0,1,2 => @4,6,7,8⦊{}⦉@4,6,7,8
        _ => @5⦊panic!("unexpected value from resume")⦉@5,
    }
    match @4,6,7,8⦊Pin::new(&mut generator).resume(())⦉@4,6,7,8 {
        GeneratorState::Complete(@10,11⦊"foo"⦉@10,11) => @12,13,14,15⦊{}⦉@12,13,14,15
        _ => @9⦊panic!("unexpected value from resume")⦉@9,
    }
    let @12,13,14,15⦊mut generator⦉@12,13,14,15 = || {
        yield 1;
        yield 2;
        yield 3;
        return "foo"
    };
    match @12,13,14,15⦊Pin::new(&mut generator).resume(()) {
        GeneratorState::Yielded(1)⦉@12,13,14,15 => @17,19,20,21⦊{}⦉@17,19,20,21
        _ => @18⦊panic!("unexpected value from resume")⦉@18,
    }
    match @17,19,20,21⦊Pin::new(&mut generator).resume(()) {
        GeneratorState::Yielded(2)⦉@17,19,20,21 => @23,25⦊{}⦉@23,25
        _ => @24⦊panic!("unexpected value from resume")⦉@24,
    }
}@23,25⦊‸⦉@23,25