Re: Ocaml 2 object system origins

From: John Prevost (prevost@maya.com)
Date: Mon Sep 13 1999 - 16:10:08 MET DST


To: Didier.Remy@inria.fr
Subject: Re: Ocaml 2 object system origins
From: John Prevost <prevost@maya.com>
Date: 13 Sep 1999 10:10:08 -0400
In-Reply-To: Didier.Remy@inria.fr's message of "Mon, 13 Sep 1999 15:15:57 +0200"

Ahh. Thanks very much--I recalled that there were some papers about
this, but poked around the web page a bit ineffectually.

On the topic of folklore and matching, you say:

> On the other hand, the language LOOM uses a new notion called
> matching (<#) and primitive self-types. It is folklore (but I don't
> think it has ever been checked formally) that matching does not
> accomplish more than polymorphism over row-variables.

Hmm. My intuition on looking at the two systems is to believe that,
if anything, polymorphism over row-variables *might* be more powerful.

Unfortunately, the comparison is complicated, since LOOM allows
variables of type #foo, and in O'Caml #foo is a synonym for a
type-expression with an unbound type variable (implying that this type
must be unified to a single type except in polymorphic function
types.) (It's so worrying when intuition can be confused in this
way.)

In any case, I'll have to do more reading and comparison now that I
have descriptions of both systems available to me.

Thanks very much for the excellent explanation.

John



This archive was generated by hypermail 2b29 : Sun Jan 02 2000 - 11:58:25 MET