 /// - parameter data: The input data to unpack.
 /// - parameter size: The size of the integer.
 ///
-/// - returns: An integer representation of `size` bytes of data.
+/// - returns: An integer representation of `size` bytes of data and the not-unpacked remaining data.
 func unpackInteger(_ data: Subdata, count: Int) throws -> (value: UInt64, remainder: Subdata) {
     guard count > 0 else {
         throw MessagePackError.invalidArgument

/// - parameter data: The input data to unpack.
/// - parameter count: The number of elements to unpack.
///
/// - returns: An array of `count` elements.
func unpackArray(_ data: Subdata, count: Int, compatibility: Bool) throws -> (value: [MessagePackValue], remainder: Subdata) {
    var values = [MessagePackValue]()
    var remainder = data

///
/// - parameter data: The input data to unpack.
///
/// - returns: A `MessagePackValue` and the not-unpacked remaining data.
public func unpack(_ data: Data, compatibility: Bool = false) throws -> (value: MessagePackValue, remainder: Data) {
    let (value, remainder) = try unpack(Subdata(data: data), compatibility: compatibility)
    return (value, remainder.data)
}

/// Unpacks a data object into a `MessagePackValue`, ignoring excess data.
