[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
- To: Moon@SCRC-STONY-BROOK.ARPA
- Subject: type disjointness
- From: Jonathan A Rees <JAR%MX.LCS.MIT.EDU@MC.LCS.MIT.EDU>
- Date: Tue, 3 Jun 86 14:14:25 EDT
- Cc: common-lisp@SU-AI.ARPA
- In-reply-to: Msg of Thu 29 May 86 18:21 EDT from David A. Moon <Moon at SCRC-STONY-BROOK.ARPA>
Date: Thu, 29 May 86 18:21 EDT
From: David A. Moon <Moon at SCRC-STONY-BROOK.ARPA>
I would like to change the language so that the the type of structures
(whose DEFSTRUCT doesn't use :TYPE) is disjoint from other types.
Your arguments for this are good, but on the other hand this change would
be adding substantial new constraints on implementations, wouldn't it?
Probably the reason why CLtL is so coy about exactly how structures are
implemented is to maximize implementation freedom for some reason.
Yes, that's the reason, but I'd be surprised if this freedom was really
essential. Implementing my suggestion would be easy in some
implementations and not so easy in others. Certainly a correct way to
implement this in any system would be to change VECTORP or whetever
predicate is true of structures so that it checks for structureness
before returning true. But this might be considered too costly.
However, CL already has so many types that it would surprise me if a
system existed in which adding one more was really difficult. I'd like
to hear from implementors who would have a really hard time with this --
I would probably learn something.