From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id LAA09679; Mon, 23 Sep 2002 11:49:30 +0200 (MET DST) Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id LAA09785 for ; Mon, 23 Sep 2002 11:49:29 +0200 (MET DST) Received: from indyio.rz.uni-sb.de (indyio.rz.uni-sb.de [134.96.7.3]) by nez-perce.inria.fr (8.11.1/8.11.1) with ESMTP id g8N9nTD02203 for ; Mon, 23 Sep 2002 11:49:29 +0200 (MET DST) Received: from mars.rz.uni-sb.de (IDENT:USaaxMYQd19INrTe17oqFbb1YwNbZ4Wn@mars.rz.uni-sb.de [134.96.7.4]) by indyio.rz.uni-sb.de (8.9.3/8.9.3) with ESMTP id LAA16669268 for ; Mon, 23 Sep 2002 11:49:28 +0200 (CEST) Received: from uni-sb.de (uni-sb.de [134.96.7.230]) by mars.rz.uni-sb.de (8.8.8/8.8.4/8.8.2) with ESMTP id LAA210983887 for ; Mon, 23 Sep 2002 11:49:28 +0200 (CEST) Received: from cs.uni-sb.de (cs.uni-sb.de [134.96.252.31]) by uni-sb.de (8.12.4/2002060500) with ESMTP id g8N9nSN28264 for ; Mon, 23 Sep 2002 11:49:28 +0200 (CEST) Received: from mail.cs.uni-sb.de (IDENT:df/A7r/tWvKhRzBfeKmxSrGH7paHsUCw@mail.cs.uni-sb.de [134.96.254.200]) by cs.uni-sb.de (8.12.1/2002091900) with ESMTP id g8N9nRZ11095 for ; Mon, 23 Sep 2002 11:49:27 +0200 (CEST) Received: from ps.uni-sb.de (grizzly.ps.uni-sb.de [134.96.186.68]) by mail.cs.uni-sb.de (8.12.5/2002072200) with ESMTP id g8N9nPJ06142 for ; Mon, 23 Sep 2002 11:49:25 +0200 (CEST) X-Authentication-Warning: email: Host grizzly.ps.uni-sb.de [134.96.186.68] claimed to be ps.uni-sb.de Received: from ps.uni-sb.de (zoidberg.ps.uni-sb.de [134.96.186.121]) by ps.uni-sb.de (8.11.6/8.11.0) with ESMTP id g8N9nPP30445; Mon, 23 Sep 2002 11:49:25 +0200 Message-ID: <3D8EE3A5.7C2DFD1D@ps.uni-sb.de> Date: Mon, 23 Sep 2002 11:49:25 +0200 From: Andreas Rossberg Organization: =?iso-8859-1?Q?Universit=E4t?= des Saarlandes X-Mailer: Mozilla 4.78 [en] (X11; U; Linux 2.4.9-21 i686) X-Accept-Language: de, en MIME-Version: 1.0 To: caml-list@inria.fr Subject: Re: [Caml-list] How to downcast in OCAML References: <20020921173035.00D507F5B@lobus.fungible.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk Tim Freeman wrote: > > For what it's worth (which may not be much), it is possible to write > classes in OCAML that are downcastable. Here's how. > > [trick using exception constructors] Unfortunately, your scheme does not scale to class hierarchies deeper than 1. Consider for example adding `subsubclass' as a subclass of `subclass_1'. Then you might want to downcast from `superclass' to `subclass_1', but your object actually is a `subsubclass'. Your downcast will fail. You need hierarchical exception constructors to make that work. - Andreas -- Andreas Rossberg, rossberg@ps.uni-sb.de "Computer games don't affect kids; I mean if Pac Man affected us as kids, we would all be running around in darkened rooms, munching magic pills, and listening to repetitive electronic music." - Kristian Wilson, Nintendo Inc. ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners