type t1 = class o: T; constructor(o: T); begin self.o := o; end; static function operator implicit(o: T): t1 := new t1(o); end; begin var a: t1 := 'abcde'; Assert(a.o = 'abcde'); end.