For example: casting an `xsd:Integer` to string requires the following in most cases 1. un-inline the integer value into a int64_t (this is true for most integers) 2. create a `boost::multiprecision` integer out of it 3. call the to string function for the `boost::multiprecision` integer In theory it would be more optimal if we did not construct the boost integer, instead just converting the uninlined int64_t to string. Not sure on the implementation yet.