Current implementation coerces `float` values into `double` internally. This should not be necessary; `cbor` for example supports distinction.