From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: weis Received: (from weis@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id TAA06475 for caml-redistribution; Tue, 29 Apr 1997 19:44:59 +0200 (MET DST) 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 QAA01994 for ; Tue, 29 Apr 1997 16:25:08 +0200 (MET DST) Received: from fermi.cnam.fr (fermi.cnam.fr [163.173.128.60]) by nez-perce.inria.fr (8.8.5/8.7.3) with ESMTP id QAA00813 for ; Tue, 29 Apr 1997 16:25:06 +0200 (MET DST) Received: from localhost (localhost [127.0.0.1]) by fermi.cnam.fr (8.8.5/jpm-961216) with SMTP id QAA31609 ; Tue, 29 Apr 1997 16:22:57 +0200 (MET DST) From: Didier Rousseau Message-Id: <199704291422.QAA31609@fermi.cnam.fr> X-Authentication-Warning: fermi.cnam.fr: localhost [127.0.0.1] didn't use HELO protocol To: luther@phivolcs.dost.gov.ph cc: Caml List Subject: Re: types recursifs ... In-reply-to: Your message of "Mon, 28 Apr 97 11:07:27 +0800." <3364146F.33B4@phivolcs.dost.gov.ph> Date: Tue, 29 Apr 97 16:22:57 +0200 X-Mts: smtp Sender: weis bonjour a tous, Sven LUTHER nous a ecrit : print_string "Int" < | Bool -> print_string "Bool" < | Arrow (l, r) -> viewt r; print_string " -> "; viewt l <... le sens que l'on peut deduit de votre fonction "viewt" ne correspond pas au type defini "'a t" dans le dernier cas de filtrage : | Arrow (l, r) -> viewt r; print_string " -> "; viewt l le typeur deduit que "l" et "r" sont du meme type que l'arg de "viewt" : 'a t puisque le filtrage porte sur ce type Or si par la suite on defini un type "tt" tel que : type tt == int t;; alors Arrow(x,y), de type int t, ou x et y sont des int le type recursif que vous auriez du definir etait : type 'a t = Int | Bool | Arrow of 'a t * 'a t mais dans ce cas quel est l'interet du 'a ?? Didier Rousseau droussea@cnam.fr