Browse thread
Re: [Caml-list] Type variables won't generalize
- Ryan Tarpine
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | Ryan Tarpine <rtarpine@h...> |
| Subject: | Re: [Caml-list] Type variables won't generalize |
>From: Francois Pottier <francois.pottier@inria.fr> >Reply-To: Francois.Pottier@inria.fr >To: caml-list@inria.fr >Subject: Re: [Caml-list] Type variables won't generalize >Date: Thu, 4 Apr 2002 09:36:38 +0200 > >... > >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/ >------------------- Thank you; that was the explanation I was waiting for! My next question is whether or not there is some non-typesafe route around this. Could I use Obj.magic to store different data types in one field, as long as I keep track of what type is really there (e.g., have a second field that would store a number representing the type) so I can cast back later? Sorry if I keep finding myself longing for the "void*" C-ism! TIA, Ryan Tarpine, rtarpine@hotmail.com "To err is human, to compute divine. Trust your computer but not its programmer." - Morris Kingston _________________________________________________________________ Get your FREE download of MSN Explorer at http://explorer.msn.com/intl.asp. ------------------- 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