Yes, you can use unions. This _DOES_ not correspond to list, but to union A { ... } list. So, how are unions implemented? Consider: union Any { 1: i32 v_i32 2: double v_double }; In C++ this will become a class with fields class Any { int32_t v_i32; double v_double; struct __isset { bool v_i32; bool v_double; } __isset; } In other words, memory-wise, this is really a structure Python: class Any: def __init__....: self.v_i32 = ... self.v_double = ... Also a struct It may be different in some of the other languages, of course, or in v0.3.0, but I'm not sure that the "union" suggestion is that efficient. Alex Boisvert wrote: > On Mon, May 3, 2010 at 7:09 AM, Bryan Duxbury wrote: > > >>There is already a totally viable workaround, though - make a Union of the >>types you want in your collection, and then make the field list. >>You get basically all the capabilities with very few drawbacks, plus the >>ability to include multiple logical "types" in the collection, not just >>physical types. Of course, if you literally need "any" possible object to >>go >>into the collection, then this won't do it for you. >> > > > Thanks for the suggestion, Bryan. > > I'm experimenting with marshalling my values to strings (I only deal with > basic types such as int32, int64, strings) right now. If that doesn't > work, I'll go with your suggestion. > > alex >