procedure Add(self:List; item: T; b: boolean); extensionmethod; begin self.Add(item); end; begin var l: List := new List; l.Add(1, true); l.Add(6); assert(l[0] = 1); end.