In most respects this placeholder node will act as
for example, for purposes of value conversions, value is considered
to be null and represented as value zero when used for numeric
// Immutable: no need to copy
// // Note: not a numeric node, hence default 'asXxx()' are fine:
public int asInt(int defaultValue);
public long asLong(long defaultValue);
public double asDouble(double defaultValue);
public boolean asBoolean(boolean defaultValue);
/* Nothing to output... should we signal an error tho?
* Chances are, this is an erroneous call. For now, let's
* not do that; serialize as explicit null. Why? Because we
* can not just omit a value as JSON Object field name may have
* been written out.
/* Hmmh. Since there's just a singleton instance, this
* fails in all cases but with identity comparison.
* However: if this placeholder value was to be considered
* similar to Sql NULL, it shouldn't even equal itself?
* That might cause problems when dealing with collections
* like Sets... so for now, let's let identity comparison
* return true.
return (o == this);
// toString() should never return null