Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!decwrl!pa.dec.com!src.dec.com!gnelson From: gnelson (Greg Nelson) Newsgroups: comp.lang.modula3 Subject: Re: language change wishes / Olivetti Modula-3 info needed Message-ID: <9102052259.AA19394@jumbo.pa.dec.com> Date: 5 Feb 91 22:59:26 GMT Lines: 24 In-Reply-To: Message of Tue, 29 Jan 91 16:03:57 GMT from Marc Wachowitz <9101291633.AA07621@decpa.pa.dec.com> To: m3 Cc: Marc Wachowitz X-Folder-Carbon: sent Marc Wachowitz suggests that "UNTRACED" should be a function from types to types; where "UNTRACED T" is like T, but not traced by the garbage collector. For example, TYPE T = OBJECT n: INTEGER END; UT = UNTRACED T; This would be useful if T was very long or defined in a different interface. Unfortunately, this doesn't work. Consider TYPE T = OBJECT METHODS p := P END; PROCEDURE P(self: T); TYPE U = UNTRACED T; What is the p method of U? It can't be P, since the type of the first argument is wrong. So it cannot be true that "UNTRACED T" is like T except that it is not traced by the garbage collector. When this simple definition failed, the committee gave up on the idea that UNTRACED was a function from types to types.