type I1=interface end; C1=class(I1) end; C2=class(C1) end; procedure p1(self: sequence of T; l: T->T1; o: I1); extensionmethod; begin assert(typeof(T) = typeof(byte)); assert(typeof(T1) = typeof(integer)); end; procedure p2(self: sequence of T; o: I1); extensionmethod := exit; begin // любая 1 из этих строк даёт ошибку: Seq&.p1(b->0,new C2); Seq&.p2(new C2); end.