Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
Safe Obj.magic container ?
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2008-02-27 (09:09)
From: David Teller <David.Teller@u...>
Subject: Safe Obj.magic container ?
   Along the lines of this discussion on Obj.magic, I have a question
about the semantics of the beast. 

 Assuming that I have two types t and u and a value v of type t, under
which conditions on t and u is it safe to Obj.magic v to type u, pass u
around a few times and Obj.magic it back to type t ? 

In particular
1. can I assume that this is always going to work if u is 'a.'a   ?

2. if t is a polymorphic variant written inline without a type name, can
I assume that if I write the same inline definition in another module,
it will have the same internal representation ?

3. assuming the answer to 1. is No, is there a type u or a simple
manipulation which should work for any type t ? Or perhaps just for
polymorphic variants ?

My guesses are 
1. No
2. Yes
3. Possibly if I restrict myself to polymorphic variants. Otherwise,
perhaps by playing with Deriving's Typeable.

David Teller
 Security of Distributed Systems
 Angry researcher: French Universities need reforms, but the LRU act brings liquidations.