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,SPF_NEUTRAL autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail4-relais-sop.national.inria.fr (mail4-relais-sop.national.inria.fr [192.134.164.105]) by yquem.inria.fr (Postfix) with ESMTP id 7E2F9BC69 for ; Thu, 18 Oct 2007 17:47:49 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgAAAEUdF0fRVZKwkmdsb2JhbACOTQIBAQcEBBMWgSk X-IronPort-AV: E=Sophos;i="4.21,296,1188770400"; d="scan'208";a="18226622" Received: from wa-out-1112.google.com ([209.85.146.176]) by mail4-smtp-sop.national.inria.fr with ESMTP; 18 Oct 2007 17:47:48 +0200 Received: by wa-out-1112.google.com with SMTP id k17so249424waf for ; Thu, 18 Oct 2007 08:47:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; bh=aSwfcbO3dBKO8dLbWCxjz/h3z3y0p96sCMxcLH978t4=; b=l+DAMM/4WoWwDH8VjyYYBF4AR6WUlADeq/NBGEc6h/QEZuxPQNd04C71VJMiwW3is+7o/uRLNqXYai0YjTiwo4YEtArL3WWDtMpE4Q/5CAzGRn8lGokgx0G/nmSbl00f8M6qz4R3HlZInzIGDf/jbQzq7wMalh4O0bpnIP/nAg0= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=lrn4zKofbI5l0w7yr0RLqt2zcyJxgCtV+wB130oEZb6WWZoIk42MDaihMWAlRUNgpp5H1epusNeaw3xFlYMJrYijhPtVRhNTgD5/fbc41b0fIzrlSRDNvFpEu6+yFDLhXj6LY3476+Dt2PvmL9QZ+examzgE5+4lugQQ/KE0/nw= Received: by 10.115.109.1 with SMTP id l1mr784545wam.1192722465483; Thu, 18 Oct 2007 08:47:45 -0700 (PDT) Received: by 10.114.13.16 with HTTP; Thu, 18 Oct 2007 08:47:45 -0700 (PDT) Message-ID: <6f9f8f4a0710180847g23edadf5t1cdc7295e07cebf7@mail.gmail.com> Date: Thu, 18 Oct 2007 17:47:45 +0200 From: "Loup Vaillant" To: "William D. Neumann" Subject: Re: [Caml-list] Smells like duck-typing Cc: "Dario Teixeira" , "Robert Fischer" , caml-list@yquem.inria.fr, "Stefano Zacchiroli" In-Reply-To: <20071018150419.M82068@cs.unm.edu> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <377673.31302.qm@web54602.mail.re2.yahoo.com> <471774AA.5000109@fischerventure.com> <20071018150419.M82068@cs.unm.edu> X-Spam: no; 0.00; conceptually:01 subtype:01 model:01 model:01 subtyping:01 wrote:01 caml-list:01 standpoint:01 inherit:01 inherit:01 reuse:01 neumann:02 functional:02 inheriting:02 seems:03 2007/10/18, William D. Neumann : > On Thu, 18 Oct 2007 09:58:50 -0500, Robert Fischer wrote > > > If you think that a full story as a story with a summary/header, > > and also a body, then you're conceptually into inheritance. > > > > From a formal standpoint, you're saying that all full stories > > can be treated as headers/summaries/"blurbs", but not all > > headers/summary/"blurbs" can be treated as full stories. > > This is equivalent to saying that full stories are a subtype > > of header/summaries/"blurbs". > > Well, I think the problem here is that the mental model is reversed with > respect to the functional model. Mentally, blurbs are kinds of stories -- > they are distinguished by their lack of a body. Using the standard > inheritance lingo, however, stories are a kind of blurb -- distinguished by > the inclusion of a body. Really, it seems like we've got a six of one/half- > dozen of the other situation... It feels like the problem is the keyword "inherit". It suggest C++/Java subtyping, while we just want code reuse. If having stories inheriting from one another eventually result in less code, I would consider that cleaner, no matter what "inherit" is supposed to mean. Sometimes, a tool can be good at something it has not be designed for. I think this might be the case, here. Regards, Loup Vaillant