 /// A type with a customized textual representation for debugging
 /// purposes.
 ///
-/// This textual representation is used when objects are written to an
+/// This textual representation is used when values are written to an
 /// *output stream* by `debugPrint` and `debugPrintln`, and is
 /// typically more verbose than the text provided by a `Printable`\ 's
 /// `description` property.

/// See also: `debugPrintln(x, &target)`
@inline(never)
public func debugPrint<T, TargetStream : OutputStreamType>(
    object: T, inout target: TargetStream
) {
  if let debugPrintableObject = object as? DebugPrintable {
    debugPrintableObject.debugDescription.writeTo(&target)
    return
  }

  if var printableObject = object as? Printable {
    printableObject.description.writeTo(&target)
    return
  }

  if let streamableObject = object as? Streamable {
    streamableObject.writeTo(&target)
    return
  }

  _adHocPrint(object, &target)
}

/// Write to `target` the textual representation of `x` most suitable


/// A type with a customized textual representation.
///
/// This textual representation is used when values are written to an
/// *output stream*, for example, by `print` and `println`.
///
/// In order to generate a textual representation for an instance of any
