From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id TAA08178; Fri, 15 Oct 2004 19:02:49 +0200 (MET DST) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id TAA08818 for ; Fri, 15 Oct 2004 19:02:48 +0200 (MET DST) Received: from mail3.speakeasy.net (mail3.speakeasy.net [216.254.0.203]) by concorde.inria.fr (8.13.0/8.13.0) with ESMTP id i9FH2kX3025371 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Fri, 15 Oct 2004 19:02:47 +0200 Received: (qmail 10116 invoked from network); 15 Oct 2004 17:02:45 -0000 Received: from shell2.speakeasy.net ([69.17.110.71]) (envelope-sender ) by mail3.speakeasy.net (qmail-ldap-1.03) with AES256-SHA encrypted SMTP for ; 15 Oct 2004 17:02:45 -0000 Date: Fri, 15 Oct 2004 10:02:44 -0700 (PDT) From: brogoff To: Caml List Subject: Re: [Caml-list] About Obj (was Recursive lists) In-Reply-To: <416F88D6.8090601@baretta.com> Message-ID: References: <41669437.3010201@yahoo.it> <4166A395.70301@yahoo.fr> <4166DC42.3090602@baretta.com> <16746.15832.409677.764564@gargle.gargle.HOWL> <416A8CDA.7060407@univ-savoie.fr> <00F89380-1BA2-11D9-B4CE-000A958FF2FE@wetware.com> <416D14C3.4030902@baretta.com> <416F88D6.8090601@baretta.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Miltered: at concorde with ID 417002B6.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Loop: caml-list@inria.fr X-Spam: no; 0.00; brogoff:01 brogoff:01 caml-list:01 baretta:01 baretta:01 abstraction:01 modeled:01 ffi:01 interfacing:01 tolerate:01 recursion:01 deficient:01 marshalling:01 unsafe:01 unsafe:01 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk 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 caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners