Version française
Home     About     Download     Resources     Contact us    
Browse thread
Re: [Caml-list] Type variables won't generalize
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Francois Pottier <francois.pottier@i...>
Subject: Re: [Caml-list] Type variables won't generalize
On Wed, Apr 03, 2002 at 08:37:02PM -0500, Ryan Tarpine wrote:
> 
> I would like to keep the 
> variant because I don't know what types of data will be stored in that 
> field, and I don't want to restrict it to a certain set.  I would like 
> modules in the future to be able to store different types without having to 
> recompile the whole program.

That is precisely what you cannot do. If different modules were allowed to
store different types into that field, type conflicts could occur. (Imagine
one module chooses to write `A of int, and some other module attempts to
read `A of int -> int. An integer would be cast into a function, leading to
a crash.) In other words, to preserve separate compilation, the compiler
forces you to restrict that variant to a certain set by declaring its type.
The problem does not arise in the toplevel evaluator (ocaml) because it does
not perform separate compilation.

-- 
François Pottier
Francois.Pottier@inria.fr
http://pauillac.inria.fr/~fpottier/
-------------------
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