Make all CValue subtypes immutable and non-nullable