Email list hosting service & mailing list manager

Re: Comments William D Clinger (29 Jun 2016 14:40 UTC)
Re: Comments Marc Nieper-Wißkirchen (29 Jun 2016 15:59 UTC)
Re: Comments William D Clinger (29 Jun 2016 18:22 UTC)
Re: Comments Marc Nieper-Wißkirchen (30 Jun 2016 11:56 UTC)
Re: Comments William D Clinger (01 Jul 2016 16:07 UTC)
Re: Comments John Cowan (29 Jun 2016 19:25 UTC)
Re: Comments Marc Nieper-Wißkirchen (30 Jun 2016 14:45 UTC)

Re: Comments William D Clinger 01 Jul 2016 16:06 UTC

Marc Nieper-Wißkirchen wrote:

> On the other hand, also SRFI 99/SRFI 131/SRFI 136 do not guarantee much
> with respect to subtypes. They only guarantee that the subtype can be a
> substitute of the type when it comes to the accessor and mutator functions
> of the type.

That's the basis for inclusion polymorphism, which was the historical
genesis for object-oriented programming and is still considered to be
a core principle for OOP.

> That's a point. But do you think that there is much SRFI 9 code out there
> (if any) that would break if field names weren't symbols but identifiers?

Yes.  Larceny and some other systems provide implementations of
SRFI 9 that are compatible with SRFI 99, SRFI 131, and parts of
the R6RS record system.

If WG2 declares field names to be something other than symbols,
then those systems will have to choose between breaking that
compatibility, which would break all existing code that relies
on SRFI 9 records being extensible by the inheritance mechanisms
of SRFI 99, SRFI 131, and the R6RS system, and maintaining that
compatibility, which would make the hypothetical R7RS (large)
record system incompatible with SRFI 9 in those systems.

Larceny would maintain that compatibility between those record
systems and the R7RS (small) record system.  That would make any
R7RS (large) record system that declares field names to be other
than symbols incompatible with the R7RS (small) record system as
implemented in Larceny, because Larceny's implementation of the
R7RS (small) system satisfies the plain language of that report
and Larceny is committed to interoperability between R7RS (small),
SRFI 9, SRFI 99, SRFI 131, and the R6RS record system.  Larceny
would also deprecate any such R7RS (large) record system because
it would not interoperate with any of the other record systems
supported by Larceny.

WG2 has the power to decide what to do about records in R7RS
(large).  WG2 does not have the authority to make retrospective
changes to SRFI 9 semantics that would break existing code in
systems such as Larceny where SRFI 9 is compatible with SRFI 99,
SRFI 131, the R6RS record system, and the R7RS (small) system.

None of that has anything to do with SRFI 137, because SRFI 137
is a standalone SRFI that can be supported by Larceny despite
the fact that SRFI 137 would be unrelated to all of the record
systems supported by Larceny.

Will