From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by yquem.inria.fr (Postfix) with ESMTP id 1A5CDD171 for ; Mon, 25 Jul 2005 19:08:33 +0200 (CEST) Received: from pauillac.inria.fr (pauillac.inria.fr [128.93.11.35]) by nez-perce.inria.fr (8.13.0/8.13.0) with ESMTP id j6PH8WTJ007763 for ; Mon, 25 Jul 2005 19:08:32 +0200 Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id TAA24179 for ; Mon, 25 Jul 2005 19:08:29 +0200 (MET DST) Received: from mail23.sea5.speakeasy.net (mail23.sea5.speakeasy.net [69.17.117.25]) by nez-perce.inria.fr (8.13.0/8.13.0) with ESMTP id j6PH8Ps4007758 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Mon, 25 Jul 2005 19:08:29 +0200 Received: (qmail 23542 invoked from network); 25 Jul 2005 17:08:24 -0000 Received: from shell1.sea5.speakeasy.net ([69.17.116.2]) (envelope-sender ) by mail23.sea5.speakeasy.net (qmail-ldap-1.03) with AES256-SHA encrypted SMTP for ; 25 Jul 2005 17:08:24 -0000 Date: Mon, 25 Jul 2005 10:08:24 -0700 (PDT) From: brogoff X-X-Sender: brogoff@shell1.sea5.speakeasy.net To: Alex Baretta Cc: caml-list@inria.fr Subject: Re: [Caml-list] "Just say no!" campaign against Obj [was: How to do this properly with OCaml?] In-Reply-To: <42E49F99.4030204@barettadeit.com> Message-ID: References: <42E2393B.5030209@inria.fr> <42E342FE.6060408@barettadeit.com> <42E49F99.4030204@barettadeit.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Miltered: at nez-perce with ID 42E51C90.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Miltered: at nez-perce with ID 42E51C89.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; caml-list:01 ocaml:01 baretta:01 runtime:01 recursive:01 xavier's:01 recursive:01 checker:01 val:01 val:01 recursion:01 recursion:01 campaign:98 2005,:98 wrote:01 X-Spam-Checker-Version: SpamAssassin 3.0.3 (2005-04-27) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.9 required=5.0 tests=PLING_QUERY autolearn=disabled version=3.0.3 On Mon, 25 Jul 2005, Alex Baretta wrote: > Actually, it is never for efficiency. The type-unsafeties are either due > to marshalling--there's little we can do about it at present Yes, I've had the same issue. There are tricks you can do to make it a bit safer but it really needs runtime checks. > polymorphic recursion--I'll look at your proposal based on recursive > modules It's actually in Xavier's paper on the experimental recursive module extension in the proposal linked off of his web site. Not my idea at all. It happens to be prettier (by my aesthetics checker :) except for the need to have a "val empty : unit -> t" in the signature rather than a "val empty : t" but maybe that's going to be fixed one day. I'm rather hopeful about the module system extensions, apart from the extra way yo get polymorphic recursion. Without recursive modules functorized libraries are a lot less useful. --or the classic set_cdr thing in a heapsort implementation on lists. That's just going back to the old discussion on tail recursive map (and the like) , and using set_cdr to safely implement tail recursion modulo cons. -- Brian