Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
[Caml-list] Recursive lists
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2004-10-15 (17:02)
From: brogoff <brogoff@s...>
Subject: Re: [Caml-list] About Obj (was Recursive lists)
On Fri, 15 Oct 2004, Alex Baretta wrote:
> > On Wed, 13 Oct 2004, Alex Baretta wrote:
> >>You might have noticed that Caml breeders use Obj fairly liberally when
> >>it is needed to achieve a higher of abstraction which cannot be modeled
> >>in the core language.
> >
> >
> brogoff wrote:
> > Good point, but I hope every Caml fan accepts these uses as being neccesary
> > compromises of the moment that can one day be eliminated by a stronger core
> > language.
> >
> > -- Brian
> Not necessarily. You certainly don't mean to say that the C FFI is a
> necessary compromise to be removed one day?

No. It's clear that when you're interfacing to C or any unsafe language that
you have to tolerate, well, unsafe features.

I am saying that there are places where the core language doesn't allow you to
express something which you'd like to express conveniently or at all.

A type system example is polymorphic recursion. Of course, you can handle it
easier since we got polymorphic methods and recursive mdules and all that, but
it is IMO just one of those things you want to be able to do easily. Using Obj
for this is repugnant, or at least, aesthetically deficient.

A non type system example might be laziness. "lazy" features are added to core
ML to make some kinds of programming more convenient. `

> We already have a very strong core language, which is fully type safe.

So, the core language should be frozen in its current state?

Is marshalling part of the core language? If so, then the core is not fully
type safe.

I like the fact that the language is undergoing a fairly slow (well, lightning
fast by SML standards!) evolution.

-- Brian

PS: "core" is overloaded in the ML world. I think when a lot of MLers talk about
the "core ML" they don't include the module system. When I speak of core Caml,
I mean something like Caml Special Light. ML means Modular Language in my
lexicon :-)

To unsubscribe, mail Archives:
Bug reports: FAQ:
Beginner's list: