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 JAA22598; Fri, 7 Nov 2003 09:35:54 +0100 (MET) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id JAA22861 for ; Fri, 7 Nov 2003 09:35:53 +0100 (MET) Received: from mail3.tpgi.com.au (mail.tpgi.com.au [203.12.160.59]) by concorde.inria.fr (8.11.1/8.11.1) with ESMTP id hA78Zo115772 for ; Fri, 7 Nov 2003 09:35:51 +0100 (MET) Received: from syd-ts22-2600-229.tpgi.com.au (syd-ts22-2600-229.tpgi.com.au [203.26.30.229]) by mail3.tpgi.com.au (8.11.6/8.11.6) with ESMTP id hA78ZfH20790; Fri, 7 Nov 2003 19:35:42 +1100 Subject: Re: [Caml-list] Mutually recursive classes From: skaller Reply-To: skaller@ozemail.com.au To: Damien Cc: caml-list@inria.fr In-Reply-To: <20031103114816.50edea0c.Damien.Pous@ens-lyon.fr> References: <20031103114816.50edea0c.Damien.Pous@ens-lyon.fr> Content-Type: text/plain Message-Id: <1068190478.6194.51.camel@pelican> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 (1.2.2-4) Date: 07 Nov 2003 18:34:38 +1100 Content-Transfer-Encoding: 7bit X-Loop: caml-list@inria.fr X-Spam: no; 0.00; caml-list:01 ozemail:01 damien:01 workaround:01 classes:03 classes:03 similarly:03 wrote:03 recursive:03 recursive:03 let:04 parameters:05 latter:06 definition:06 type:07 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk On Mon, 2003-11-03 at 21:48, Damien wrote: > Hello, > > I would like to create two mutually recursive classes, There is a mechanical workaround for this. You first parameterise your classes, then you use a type/class definition instantiating the parameters: the latter construction allows recursive 'and's. For example, class type A' ['B'] .. class type B' ['A'] .. type A = B A' and B = A B' [and similarly for classes, using let instead] ------------------- 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