Modified code for GCC compability: Changed Value's containers to hold pointers to Values as stl containers of incomplete types.