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.0 required=5.0 tests=AWL,DNS_FROM_RFC_ABUSE, DNS_FROM_RFC_WHOIS autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by yquem.inria.fr (Postfix) with ESMTP id AAB9EBC69 for ; Wed, 17 Oct 2007 17:13:41 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgAAAA7EFUfOvjGsoWdsb2JhbACOTgIBAQIFBAYJCAEX X-IronPort-AV: E=Sophos;i="4.21,290,1188770400"; d="scan'208";a="4648394" Received: from web54602.mail.re2.yahoo.com ([206.190.49.172]) by mail3-smtp-sop.national.inria.fr with SMTP; 17 Oct 2007 17:13:37 +0200 Received: (qmail 36706 invoked by uid 60001); 17 Oct 2007 15:13:36 -0000 DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=X-YMail-OSG:Received:Date:From:Subject:To:Cc:In-Reply-To:MIME-Version:Content-Type:Content-Transfer-Encoding:Message-ID; b=Zw1H+x4fcjpVHmv0r3eYKWYn1qIL3Gvk5b7asBXr5L+wzvY4KYX9ChVpEYXh/oabHARjh7v5lV8lOBmHrTRblUPowc54ijMZzK6tCKsY3fsgxUgv5Piq07AEVAW4snk8eHC8ka1xRlKFl9Tp5n3D5pRvVokUmsyNs4aNoRIJEDk=; X-YMail-OSG: qG0tgYYVM1lPH8NFp6IqPNVPk56i62ZKc6ZM7rjwVNGqXFTcyOTo8j24A0IImNaO7Bz4h43uRKBgyg78zd.Pmz48e93QO.4lqWa1Op7XvyOQrY0YYPfgn9TxGNzV Received: from [82.155.120.49] by web54602.mail.re2.yahoo.com via HTTP; Wed, 17 Oct 2007 16:13:36 BST Date: Wed, 17 Oct 2007 16:13:36 +0100 (BST) From: Dario Teixeira Subject: Re: [Caml-list] Smells like duck-typing To: skaller , Daniel "Bünzli" Cc: caml-list@yquem.inria.fr In-Reply-To: <1192633414.10820.4.camel@rosella.wigram> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Message-ID: <788147.33893.qm@web54602.mail.re2.yahoo.com> X-Spam: no; 0.00; syntax:01 cheers:01 carbon:98 caml-list:01 data:02 essentially:02 string:02 string:02 objects:02 dynamic:03 dynamic:03 guess:04 complex:05 readability:05 extension:06 > I would use something weaker, and I wouldn't use objects > either. To me, this is essentially a dynamic scenario, > so the data type should be dynamic. For example: > > type field_t = [ > | `Title of string > | `Intro of string > | `Body of string > | `Field of string * string > ] > > type story_t = field_t list > Hi, Interesting idea, but how would you access the fields in a convenient manner? Note that nothing beats record access (say, story.title) or even object method call (story#title) in convenience and readability. (I guess the convenience aspect could be sorted out with a syntax extension, but then we're moving into far more complex territory than I hope is necessary...) Cheers, Dario ___________________________________________________________ Want ideas for reducing your carbon footprint? Visit Yahoo! For Good http://uk.promotions.yahoo.com/forgood/environment.html