type c1 = class function f1: sequence of T2; begin var s: T2; var s1: T1; yield s; end; end; begin var o := new c1; var i: integer; foreach var e in o.f1& do begin assert(e = 0); Inc(i); end; assert(i = 1); end.