type t0=record end; t1=class where T1: record; a: T1; end; t2=class(Dictionary,T>) where T: record; end; begin var a := new t2; var o := new t1; a.Add(o, 2); assert(a[o] = 2); end.