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 IAA03813; Fri, 18 Jan 2002 08:37:22 +0100 (MET) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f 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 IAA05972 for ; Fri, 18 Jan 2002 08:37:21 +0100 (MET) Received: from kurims.kurims.kyoto-u.ac.jp (kurims.kurims.kyoto-u.ac.jp [130.54.16.1]) by nez-perce.inria.fr (8.11.1/8.11.1) with ESMTP id g0I7bJL10961 for ; Fri, 18 Jan 2002 08:37:20 +0100 (MET) Received: from tet.kurims.kyoto-u.ac.jp (suiren.kurims.kyoto-u.ac.jp [130.54.16.25]) by kurims.kurims.kyoto-u.ac.jp (8.9.3/3.7W) with ESMTP id QAA21083; Fri, 18 Jan 2002 16:37:07 +0900 (JST) Received: from localhost (localhost [127.0.0.1]) by tet.kurims.kyoto-u.ac.jp (8.11.6/8.11.6) with ESMTP id g0I6wXH00764; Fri, 18 Jan 2002 15:58:33 +0900 (JST) (envelope-from garrigue@kurims.kyoto-u.ac.jp) To: frisch@clipper.ens.fr Cc: caml-list@inria.fr Subject: Re: [Caml-list] record labels of record scope using camlp4 In-Reply-To: References: <20020117190611.A25214@morgon.inria.fr> X-Mailer: Mew version 1.94.2 on Emacs 20.7 / Mule 4.0 (HANANOEN) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-Id: <20020117225833C.garrigue@kurims.kyoto-u.ac.jp> Date: Thu, 17 Jan 2002 22:58:33 -0800 From: Jacques Garrigue X-Dispatcher: imput version 20000228(IM140) Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk From: Alain Frisch > Note that the patch I proposed was not a suggestion for inclusion in > OCaml; I think it solves in a light way a practical problem (theoretical > non-issue) encountered by many people, but I know it is not really in > OCaml spirit. I actually suggested such a patch about a year ago, and then sawed my own branch by giving the following counter-example: type t = {a : u} and u = {a : t} let f x y = (x.a == y) && (x == y.a) If you type first (x.a == y), you get x : u, and as a result y : t, but if you start with (x == y.a) you obtain y : u and x : t. That's bad, but not really dangerous, I must say. And that's about as bad as you can get. Maybe we will be able to do that once polymorphic methods are included... (Polymorphic methods are not relevant here, but they might be accompanied by a mechanism to rule out the above example) Cheers, Jacques Garrigue ------------------- Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr