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 KAA19530; Thu, 31 Jan 2002 10:09:48 +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 KAA19514 for ; Thu, 31 Jan 2002 10:09:47 +0100 (MET) Received: from kurims.kurims.kyoto-u.ac.jp (kurims.kurims.kyoto-u.ac.jp [130.54.16.1]) by concorde.inria.fr (8.11.1/8.11.1) with ESMTP id g0V99kD25715 for ; Thu, 31 Jan 2002 10:09:46 +0100 (MET) Received: from localhost (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 SAA24278; Thu, 31 Jan 2002 18:09:35 +0900 (JST) To: Frederic.Tronel@inrialpes.fr Cc: caml-list@inria.fr Subject: Re: [Caml-list] Parametric classes and weak types In-Reply-To: <3C5905CF.A09E2519@inrialpes.fr> References: <3C5905CF.A09E2519@inrialpes.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: <20020131180935V.garrigue@kurims.kyoto-u.ac.jp> Date: Thu, 31 Jan 2002 18:09:35 +0900 From: Jacques Garrigue X-Dispatcher: imput version 20000228(IM140) Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk Hi, > Using ocaml 3.04 under solaris or linux, using the ocaml I have the > following problem: > # let ca1 = new ca ;; > val ca1 : ('a -> '_b) ca as 'a = > # let cb1 = new cb ;; > val cb1 : ('a -> '_b, 'c ca -> '_d as 'c) cb as 'a = > # cb1#set_atts [ca1];; > - : unit = () > # cb1#set_transform (fun x -> x) (fun x -> x);; > - : unit = () > # cb1#transform ;; > - : (('a -> 'a, ('b ca as 'c) -> 'c as 'b) cb as 'a) * 'c list = > , [] > # cb1#transform ;; > > Here it hangs indefinitely. I'm working on the problem. Curiously, what triggers it seems to be the printer: as long as values of the above type are not printed, type inference works fine. It's touching a very sensitive part of ocaml, the combination of recursive types and type abbreviations. Maybe Jerome can also have a look at the bug report ? Hint: the loop is in a call to expand_head, inside moregeneral. 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