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=0.4 required=5.0 tests=AWL,DNS_FROM_RFC_ABUSE 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 4A7A9BBC1 for ; Mon, 3 Mar 2008 11:20:45 +0100 (CET) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgAAABdgy0fAXQInh2dsb2JhbACQcgEBAQgKKZou X-IronPort-AV: E=Sophos;i="4.25,437,1199660400"; d="scan'208";a="9825819" Received: from concorde.inria.fr ([192.93.2.39]) by mail3-smtp-sop.national.inria.fr with ESMTP; 03 Mar 2008 11:20:45 +0100 Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by concorde.inria.fr (8.13.6/8.13.6) with ESMTP id m23AKgGL014048 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=OK) for ; Mon, 3 Mar 2008 11:20:44 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ao8CAGNfy0eCNhAB/2dsb2JhbACrXA X-IronPort-AV: E=Sophos;i="4.25,437,1199660400"; d="scan'208";a="7929763" Received: from kurims.kurims.kyoto-u.ac.jp ([130.54.16.1]) by mail2-smtp-roc.national.inria.fr with ESMTP; 03 Mar 2008 11:20:41 +0100 Received: from localhost (orion [130.54.16.5]) by kurims.kurims.kyoto-u.ac.jp (8.13.8/8.13.8) with ESMTP id m23AKZ7L007809; Mon, 3 Mar 2008 19:20:35 +0900 (JST) Date: Mon, 03 Mar 2008 19:20:30 +0900 (JST) Message-Id: <20080303.192030.13759690.garrigue@math.nagoya-u.ac.jp> To: Tiphaine.Turpin@free.fr Cc: keiko@kurims.kyoto-u.ac.jp, caml-list@inria.fr Subject: Re: [Caml-list] OO programming From: Jacques Garrigue In-Reply-To: <47CBC7AB.9000601@free.fr> References: <47C81829.4010505@free.fr> <20080301.005807.125113032.keiko@kurims.kyoto-u.ac.jp> <47CBC7AB.9000601@free.fr> X-Mailer: Mew version 4.2 on Emacs 22.1 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Miltered: at concorde with ID 47CBD0FA.000 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; variants:01 variants:01 polymorphic:01 polymorphic:01 encode:01 caml-list:01 inherit:01 variant:02 objects:02 objects:02 garrigue:03 garrigue:03 jacques:03 jacques:03 hierarchy:03 From: "Tiphaine.Turpin" > I don't know if there is an equivalent to inherit for > polymorphic variants: "type t' = private [> t | ...] doesn't seem to > work. And using objects to encode variants is possible, but you may be > used to more serious solutions... It's actually simple with polymorphic variants than with objects. You just write type t' = private [> t ] but t has to be a non-private polymorphic variant type. So you have to maintain a hierarchy of non-private types, to be able to build your private types. This should be already apparent in my code for event. Jacques