Version française
Home     About     Download     Resources     Contact us    
Browse thread
Ocaml 2 object system origins
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: John Prevost <prevost@m...>
Subject: Re: Ocaml 2 object system origins
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