Made datum_t go back to using a union.
Made val_t use a variant.