From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id SAA20567; Fri, 17 Sep 2004 18:08:31 +0200 (MET DST) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f 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 SAA21526 for ; Fri, 17 Sep 2004 18:08:30 +0200 (MET DST) Received: from smtp3.adl2.internode.on.net (smtp3.adl2.internode.on.net [203.16.214.203]) by nez-perce.inria.fr (8.13.0/8.13.0) with ESMTP id i8HG8RZ4006341 for ; Fri, 17 Sep 2004 18:08:29 +0200 Received: from [192.168.1.200] (ppp202-133.lns1.syd3.internode.on.net [203.122.202.133]) by smtp3.adl2.internode.on.net (8.12.9/8.12.9) with ESMTP id i8HG8AOU070219; Sat, 18 Sep 2004 01:38:20 +0930 (CST) Subject: Re: [Caml-list] type matching From: skaller Reply-To: skaller@users.sourceforge.net To: =?ISO-8859-1?Q?Fl=E1vio?= Leonardo Cavalcanti de Moura Cc: caml-list In-Reply-To: <1095432814.6857.19.camel@lcflavio.macs.hw.ac.uk> References: <1095432814.6857.19.camel@lcflavio.macs.hw.ac.uk> Content-Type: text/plain; charset=UTF-8 Message-Id: <1095437290.2580.61.camel@pelican.wigram> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 (1.2.2-4) Date: 18 Sep 2004 02:08:10 +1000 Content-Transfer-Encoding: 8bit X-Miltered: at nez-perce with ID 414B0BFB.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Loop: caml-list@inria.fr X-Spam: no; 0.00; caml-list:01 sourceforge:01 2004:99 dout:01 struct:01 val:01 'int':01 9660:01 glebe:01 ocaml:01 sig:01 sig:01 int:01 int:01 nsw:01 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk On Sat, 2004-09-18 at 00:53, Flávio Leonardo Cavalcanti de Moura wrote: > Hi there, > > I am trying to build a normalisation function for lambda terms which > This expression has type exlambda * int * 'a list * string > but is here used with type Setypes.exlambda * int * int list * string > > My dout is: shouldn't the type exlambda match with the type > Setypes.exlambda as well as 'a list with int list in the two last line > above? > > Why Ocaml differ between the types Setypes.exlambda and exlambda? module type X = sig type t end module Y = struct type t = int end --> module Y : sig type t = int end module Z : X = Y --> module Z : X let i : Y.t = 1 --> val x : Y.t = 1 let ni : Z.t = 1 --> This expression has type int but is here used with type Z.t Y.t is just an alias for 'int' However Z.t is an abstract type because X.t is. -- John Skaller, mailto:skaller@users.sf.net voice: 061-2-9660-0850, snail: PO BOX 401 Glebe NSW 2037 Australia Checkout the Felix programming language http://felix.sf.net ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners