Version française
Home     About     Download     Resources     Contact us    
Browse thread
[Caml-list] type matching
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: skaller <skaller@u...>
Subject: Re: [Caml-list] type matching
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