From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from weis@localhost) by pauillac.inria.fr (8.6.10/8.6.6) id SAA02971 for caml-redistribution; Thu, 20 Jun 1996 18:48:53 +0200 Received: (from remy@localhost) by pauillac.inria.fr (8.6.10/8.6.6) id SAA02788; Thu, 20 Jun 1996 18:42:46 +0200 Message-Id: <199606201642.SAA02788@pauillac.inria.fr> Subject: Re: Automatic coercition to a more general type ? To: boos@gr6.u-strasbg.fr (Christian Boos) Date: Thu, 20 Jun 1996 18:42:46 +0200 (MET DST) Cc: caml-list@pauillac.inria.fr In-Reply-To: <9606191112.AA11535@gr6.u-strasbg.fr> from "Christian Boos" at Jun 19, 96 01:12:36 pm From: Didier.Remy@inria.fr (Didier Remy) Reply-to: Didier.Remy@inria.fr Organization: INRIA, BP 105, F-78153 Le Chesnay Cedex Phone: (33) 1 3963 5317 -- Sec: (33) 1 3963 5684 -- Fax: (33) 1 3963 5330 Web: http://pauillac.inria.fr/~remy MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit Sender: weis Bonjour, > J'ai une question concernant le sous-typage et la nécessité de faire > une coercition explicite d'un objet en un type plus général (par > exemple pour mettre des objets de classes différentes dans une même > liste, en forçant un type 'ancêtre commun', cf. exemple point et color_point > de la doc). > > N'y aurait-t-il pas moyen de réaliser cette coercition de façon > automatique en trouvant le type intersection des types de ces objets ? La coercition d'une valeur de type A en une valeur de type B est sémantiquement correcte si A est un sous-type B. Ce que tu demandes consiste donc à synthétiser des types avec contraintes de sous-typage. C'est un problème connu, qui dans toute sa généralité n'a trouvé de solutions théoriques que très récemment. Cependant ces solutions ne sont pas encore suffisamment satisfaisantes pour être ajoutées au langage sans risque de nuire à sa simplicité voire à son utilisation. C'est pour cela que nous avons pour l'instant choisi la solution la plus simple qui consiste uniquement à vérifier les relations de sous-typage explicitement demandées par l'utilisateur. -Didier.