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 JAA32342; Mon, 24 Mar 2003 09:48:12 +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 JAA00138 for ; Mon, 24 Mar 2003 09:48:11 +0100 (MET) Received: from avalon.ens-lsh.fr (mailhost.ens-lsh.fr [193.51.131.2]) by concorde.inria.fr (8.11.1/8.11.1) with ESMTP id h2O8mAf14485 for ; Mon, 24 Mar 2003 09:48:11 +0100 (MET) Received: from avalon.ens-lsh.fr (localhost [127.0.0.1]) by avalon.ens-lsh.fr (8.12.8/8.12.8) with ESMTP id h2O9k54s029438 for ; Mon, 24 Mar 2003 09:46:05 GMT Received: from ens-notes1.ens-lsh.fr (ens-notes1.ens-lsh.fr [10.2.1.44]) by avalon.ens-lsh.fr (8.12.8/8.12.8) with ESMTP id h2O9k5Fv029435 for ; Mon, 24 Mar 2003 09:46:05 GMT Received: from ens-lyon.fr ([10.3.25.150]) by ens-notes1.ens-lsh.fr (Lotus Domino Release 5.0.10) with SMTP id 2003032409465655:10203 ; Mon, 24 Mar 2003 09:46:56 +0100 Date: Mon, 24 Mar 2003 09:44:15 +0100 From: Damien To: caml-list@inria.fr Subject: Re: [Caml-list] About polymorphic methods and recursive classes Message-Id: <20030324094415.6679de19.Damien.Pous@ens-lyon.fr> In-Reply-To: <3E7C4784.6000901@epfl.ch> References: <3E7C4784.6000901@epfl.ch> Organization: mosthagloups X-Mailer: Sylpheed version 0.8.10claws13 (GTK+ 1.2.10; i386-debian-linux-gnu) Mime-Version: 1.0 X-MIMETrack: Itemize by SMTP Server on ens-notes1/ENS-LSH(Release 5.0.10 |March 22, 2002) at 24/03/2003 09:46:56, Serialize by Router on ens-notes1/ENS-LSH(Release 5.0.10 |March 22, 2002) at 24/03/2003 09:46:56, Serialize complete at 24/03/2003 09:46:56 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=ISO-8859-15 X-Spam: no; 0.00; damien:01 ens-lyon:01 caml-list:01 inherit:01 int:01 polymorphic:01 classes:03 wrote:03 recursive:03 nil:03 object:03 types:03 sebastien:03 epfl:05 seems:05 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk On Sat, 22 Mar 2003 12:22:44 +0100 S=E9bastien Briais wrote: > Hello, hello > # class virtual ['a] visitor =3D > object > method virtual caseNil : 'a > end > and virtual int_list =3D > object > method virtual visit : 'a.('a visitor -> 'a) > end > ;; > class virtual ['a] visitor : object method virtual caseNil : 'a end > class virtual int_list : object method virtual visit : 'a visitor -> > 'a end >=20 > # class nil =3D > object > inherit int_list > method visit v =3D v#caseNil > end > ;; > This expression has type 'a visitor > It has no method caseNil it seems to work with class types : # class type ['a] visitor_t =3D object=20 method caseNil: 'a=20 end;; class type ['a] visitor_t =3D object method caseNil : 'a end # class type int_list_t =3D object=20 method visit: 'a. ('a visitor_t) -> 'a end;;=20 class type int_list_t =3D object method visit : 'a visitor_t -> 'a end # class nil: int_list_t =3D object method visit: 'a. ('a visitor_t) -> 'a =3D fun v -> v#caseNil end;; class nil : int_list_t damien ------------------- 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