From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: * X-Spam-Status: No, score=1.1 required=5.0 tests=AWL,SPF_SOFTFAIL autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by yquem.inria.fr (Postfix) with ESMTP id D834CBC0A for ; Wed, 4 Apr 2007 22:13:12 +0200 (CEST) Received: from mail5.sea5.speakeasy.net (mail5.sea5.speakeasy.net [69.17.117.7]) by concorde.inria.fr (8.13.6/8.13.6) with ESMTP id l34KDAqm031711 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL) for ; Wed, 4 Apr 2007 22:13:12 +0200 Received: (qmail 17806 invoked from network); 4 Apr 2007 20:13:09 -0000 Received: from shell4.sea5.speakeasy.net ([69.17.116.5]) (envelope-sender ) by mail5.sea5.speakeasy.net (qmail-ldap-1.03) with AES256-SHA encrypted SMTP for ; 4 Apr 2007 20:13:09 -0000 Date: Wed, 4 Apr 2007 13:13:09 -0700 (PDT) From: brogoff To: caml-list@yquem.inria.fr Subject: Re: [Caml-list] Polymorphic recursion In-Reply-To: <4614037E.6060709@inria.fr> Message-ID: References: <6f9f8f4a0704030959l8ebb155g8532e3ee6d31c66d@mail.gmail.com> <4613C0AA.8010405@inria.fr> <4613C22E.5060206@inria.fr> <4614037E.6060709@inria.fr> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Miltered: at concorde with ID 461406D6.000 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; recursion:01 frisch:01 recursive:01 recursive:01 recursion:01 compiler:01 admittedly:01 subjective:01 2007,:98 polymorphic:01 polymorphic:01 wrote:01 clearer:01 experimental:01 caml-list:01 On Wed, 4 Apr 2007, Alain Frisch wrote: > In the present case, we have good solutions that don't require Obj. > Unless a strong case is made that performance is not adequate, there is > really no reason to use Obj. I agree with the "don't use Obj" part, but I think the current solutions are not that good. Encoding with records or objects is unclear, and while I find the encoding with recursive modules much clearer, that's still listed as an experimental feature. It also seems a bit heavy, using a recursive module just to get polymorphic recursion. Providing a type for the function and having the compiler use it is the right solution, IMO. It's not as much performance (though that is important!) as clarity, admittedly subjective, that I am judging the solutions by. -- Brian