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.4 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 3FED7BC69 for ; Sat, 6 Oct 2007 03:49:57 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgAAAKCFBkfAXQInh2dsb2JhbACOOAEBAQgKKQ X-IronPort-AV: E=Sophos;i="4.21,238,1188770400"; d="scan'208";a="17354825" Received: from concorde.inria.fr ([192.93.2.39]) by mail4-smtp-sop.national.inria.fr with ESMTP; 06 Oct 2007 03:49:56 +0200 Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by concorde.inria.fr (8.13.6/8.13.6) with ESMTP id l961numN002640 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=OK) for ; Sat, 6 Oct 2007 03:49:56 +0200 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgAAAKCFBkfRVca/kmdsb2JhbACOOAEBAQEHAgYTFg X-IronPort-AV: E=Sophos;i="4.21,238,1188770400"; d="scan'208";a="3813455" Received: from rv-out-0910.google.com ([209.85.198.191]) by mail3-smtp-sop.national.inria.fr with ESMTP; 06 Oct 2007 03:49:55 +0200 Received: by rv-out-0910.google.com with SMTP id f5so230691rvb for ; Fri, 05 Oct 2007 18:49:54 -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:sender:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references:x-google-sender-auth; bh=zypYdummxk1g2snDxaEGfMk39JdBNxaPw2X6U8dqkYg=; b=HqKkrXHsQR8pJMEtOpuasREm9yhvOM+m/j0cPtM01YQ0VA4mIVw4pBv2XkbPHeat2wzh0XGM1TRU5F3h7E0xqxGowVEntzL/eM5AODvrwDILqsk3rrrq+7cVS9WRXzGgoQGfV0WCBJ3j0QSQ8UYeDKs4NKpPazmvFtqiQKcpsK8= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:sender:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references:x-google-sender-auth; b=g/53/cZYFQ3xAJ6B4tRXk1m6Y1TCPWV5X60FNFqM+7Py1/rEb9sQdAZLBLCKkuZoLfOhCblLpzxsDonw1wF66bMsPB/098qvBJZAPXB7MsD88R+EpDLHBVGdPrN6U5NPqDf8xyTm5bXT9rWOctd29kMN/ccZwYbUKoon0VOL9ac= Received: by 10.142.221.19 with SMTP id t19mr2706261wfg.1191635394126; Fri, 05 Oct 2007 18:49:54 -0700 (PDT) Received: by 10.142.102.20 with HTTP; Fri, 5 Oct 2007 18:49:54 -0700 (PDT) Message-ID: Date: Fri, 5 Oct 2007 18:49:54 -0700 From: "Jake Donham" Sender: jake.donham@gmail.com To: caml-list@inria.fr Subject: Re: [Caml-list] Re: Why can't I call a function over a subclass? In-Reply-To: <878x6hny0e.fsf@pps.jussieu.fr> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <28fa90930710050048p3d6f4e8cs8e13d0fe49d296f2@mail.gmail.com> <4705EF58.3040605@bik-gmbh.de> <1191580233.6509.26.camel@Blefuscu> <87ejg9oms3.fsf@pps.jussieu.fr> <1191592931.6509.33.camel@Blefuscu> <28fa90930710050759m682d8b65g72a31cc311acc276@mail.gmail.com> <28fa90930710050812i204e975ap847e7474ec9580bc@mail.gmail.com> <20071005152130.M41697@cs.unm.edu> <28fa90930710050849y64f2cc5en16d15c80c5576a61@mail.gmail.com> <878x6hny0e.fsf@pps.jussieu.fr> X-Google-Sender-Auth: 99bcbdfcb0bb93c0 X-Miltered: at concorde with ID 4706E9C4.000 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; ocaml:01 polymorphism:01 blog:98 caml-list:01 coercion:01 subclass:03 programming:03 programming:03 implicit:03 luca:04 oriented:07 function:08 object:09 idea:13 but:14 Hi Luca, Others have given good replies already but you may find this article helpful: http://skydeck.com/blog/programming/ocaml-for-the-recovering-java-programmer-part-1-objects-and-subtyping/ What it comes down to is that in OCaml subsumption (i.e. the whole idea of object oriented programming) is accomplished using polymorphism, not implicit coercion. Jake