Re: problemes de types

From: Pierre Weis (Pierre.Weis@inria.fr)
Date: Tue Jul 22 1997 - 09:29:44 MET DST


From: Pierre Weis <Pierre.Weis@inria.fr>
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)

> 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/



This archive was generated by hypermail 2b29 : Sun Jan 02 2000 - 11:58:11 MET