The true fix here is to go with a union and a type with 3 states; 0=not-set. 1=union-w-set 2=union-wstring-set.