function DQNToNullable2 (ff: System.Nullable; v: T): System.Nullable; where T: record; begin Result := new System.Nullable(v); end; begin var v := DQNToNullable2(2,2); assert(v.Value = 2); end.