From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from weis@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id JAA09706 for caml-redistribution; Tue, 22 Jul 1997 09:30:07 +0200 (MET DST) 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 JAA09690 for ; Tue, 22 Jul 1997 09:29:47 +0200 (MET DST) Received: from pauillac.inria.fr (pauillac.inria.fr [128.93.11.35]) by concorde.inria.fr (8.8.5/8.7.3) with ESMTP id JAA08668; Tue, 22 Jul 1997 09:29:46 +0200 (MET DST) Received: (from weis@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id JAA09686; Tue, 22 Jul 1997 09:29:45 +0200 (MET DST) From: Pierre Weis Message-Id: <199707220729.JAA09686@pauillac.inria.fr> Subject: Re: problemes de types In-Reply-To: <199707211449.QAA02229@yeti2.didac-mip.fr> from Jean-Claude Laffitte at "Jul 21, 97 04:49:03 pm" To: laffitte@didac-mip.fr Date: Tue, 22 Jul 1997 09:29:44 +0200 (MET DST) Cc: caml-list@inria.fr MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: weis > j'ai un petit probleme avec les definitions de types. Lorsque je definis deux > types enregistrements ayant un champ portant le meme nom, le compilateur > semble avoir du mal a reconnaitre les types de mes variables. [...] > Le meme type de conflit existe avec les types enumeres. Effectivement, il n'y a pas de surcharge sur les identificateurs en Caml. C'est vrai pour les noms de champs d'enregistrement, les constructeurs de types somme, les identificateurs de valeurs et les ope'rateurs (pas de surcharge de + par exemple). Seuls les objets d'O'Caml permettent cette surcharge sur les me'thodes. Si vous voulez de'finir des champs de me^me nom dans plusieurs types diffe'rents, il faut les de'finir dans des modules diffe'rents, puisque chaque module introduit son propre espace de nom. > ********************************************************************** > English summary > ********************************************************************** > I've a little problem with record types. When I define two types with a common > field name, the compiler seems to have problems to recognize the type of > variables. [...] > The same problems appears with variant types. There is no overloading in Caml, neither for field names in records, constructors names in concrete types nor for functions or operators names (e.g. +). However, objects in O'Caml provide overloading for methods names. A solution to overcome the problem is to define the types in separate modules, since each module introduce a new space name. Best regards, Pierre Weis INRIA, Projet Cristal, Pierre.Weis@inria.fr, http://pauillac.inria.fr/~weis/