There are a number of special values that the serializer will force (evaluate) transparently:
- promises from FP::Lazy
will be force'd
- thunks (CODE values)
will be called with no arguments
In body context, their `pxml_serialized_body_string` method (if available) will be called, in attribute context, `pxml_serialized_attribute_string`, in both cases the string is inserted into the output without escaping (see `PXML::Preserialize` for an example that uses this). Missing those, `string` will be called if available and the result escaped, otherwise an exception is thrown.