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 OAA01674 for caml-redistribution; Fri, 30 May 1997 14:06:31 +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 MAA29659 for ; Fri, 30 May 1997 12:01:44 +0200 (MET DST) Received: from ebene.inria.fr (vmm@ebene.inria.fr [128.93.2.44]) by concorde.inria.fr (8.8.5/8.7.3) with ESMTP id MAA12493 for ; Fri, 30 May 1997 12:01:43 +0200 (MET DST) Received: (from vmm@localhost) by ebene.inria.fr (8.7.6/8.7.3) id MAA32195; Fri, 30 May 1997 12:01:21 +0200 Date: Fri, 30 May 1997 12:01:21 +0200 Message-Id: <199705301001.MAA32195@ebene.inria.fr> From: Valerie.Menissier-Morain@dyade.fr (Vale'rie Me'nissier-Morain) Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit To: mposada@impsat.net.co CC: caml-list@pauillac.inria.fr In-reply-to: <338DD17B.62C6@impsat.net.co> (message from Ernesto Posse on Thu, 29 May 1997 13:56:59 -0500) Subject: Re: Type constraints Reply-to: Valerie.Menissier-Morain@dyade.fr Sender: weis Why do you need to define t2 simultaneously to 'a node and t1? The following session is ok in Caml Light > Caml Light version 0.73 #type 'a node = {x: 'a; y: t1} and t1 = A | B of t1*t1;; Type node defined. Type t1 defined. #type t2 = C | D of (string * t2) node;; Type t2 defined. #type t2 = C | D of (string * t2) node | E of bool node;; Type t2 defined. # or, if you prefer in Objective Caml Objective Caml version 1.05 # type 'a node = {x: 'a; y: t1} a nd t1 = A | B of t1*t1;; type 'a node = { x: 'a; y: t1 } type t1 = | A | B of t1 * t1 # type t2 = C | D of (string * t2) node;; type t2 = | C | D of (string * t2) node # type t2 = C | D of (string * t2) node | E of bool node;; type t2 = | C | D of (string * t2) node | E of bool node V. Ménissier-Morain