type t0 = class end; function f0(q: t0) := default(T); type t1 = partial class end; t2 = partial class // Обязательно как то использовать t1, именно с o: t1; end; t1 = partial class(t0>) end; t2 = partial class //Ошибка: Нельзя преобразовать тип t2 к t2 function f1: t2 := f0(default(t1)); end; begin var o := new t2; assert(o.f1() = nil); end.