Re: Ocaml 2 object system origins

From: John Prevost (
Date: Mon Sep 13 1999 - 16:10:08 MET DST

Subject: Re: Ocaml 2 object system origins
From: John Prevost <>
Date: 13 Sep 1999 10:10:08 -0400
In-Reply-To:'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

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.


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