function Value (consType) {
    if (! Types.isType(consType)) throw "Tried to create a value of undefined type";
    this._consType = consType, // one of Types.xxx
    this._value = {};
}
// boxed values of ProductConstructors - think how to unbox built in types
boxed values of ProductConstructors - think how to unbox built in types
boxed values of ProductConstructors - think how to unbox built in types
function Value (consType) {
    if (! Types.isType(consType)) throw "Tried to create a value of undefined type";
    this._consType = consType, 
    this._value = {};
}
function Value ( consType ) { if ( ! Types . isType ( consType ) ) throw "Tried to create a value of undefined type" ; this . _consType = consType , this . _value = { } ; }
boxed values of ProductConstructors - think how to unbox built in types
boxed values of ProductConstructors - think how to unbox built in types
// one of Types.xxx