   ///
   /// As you can see, complexity for each element of the argument list
   /// depends on the argument type and capabilities of the collection
-  /// used to initialize the corresponding instance's parent's mirror.
+  /// used to initialize the corresponding subject's parent's mirror.
   /// Each `String` argument results in a linear search.  In short,
   /// this function is suitable for exploring the structure of a
   /// `Mirror` in a REPL or playground, but don't expect it to be

public typealias PlaygroundQuickLook = QuickLookObject

extension PlaygroundQuickLook {
  /// Initialize for the given `instance`.
  ///
  /// If the dynamic type of `instance` conforms to
  /// `CustomPlaygroundQuickLookable`, returns the result of calling
  /// its `customPlaygroundQuickLook` method.  Otherwise, returns
  /// a `PlaygroundQuickLook` synthesized for `instance` by the
  /// language.  Note: in some cases the result may be
  /// `.Text(String(reflecting: instance))`.
  ///
  /// Note: If the dynamic type of `instance` has value semantics,
  /// subsequent mutations of `instance` will not observable in
  /// `Mirror`.  In general, though, the observability of such
  /// mutations is unspecified.
  public init(reflecting instance: Any) {
    if let customized? = instance as? CustomPlaygroundQuickLookable {
      self = customized.customPlaygroundQuickLook()
    }
    else {
      if let q? = Swift.reflect(instance).quickLookObject {
        self = q
      }
      else {
        self = .Text(String(reflecting: instance))
      }
    }
  }

/// Mirrors are used by playgrounds and the debugger.
public struct Mirror {

  /// Initialize a mirror that reflects upon the given `subject`.
  ///
  /// If the dynamic type of `subject` conforms to
  /// `CustomReflectable`, returns the result of calling its
  /// `customMirror` method.  Otherwise, returns a mirror synthesized
  /// for `subject` by the language.
  ///
  /// Note: If the dynamic type of `subject` has value semantics,
  /// subsequent mutations of `subject` will not observable in
  /// `Mirror`.  In general, though, the observability of such
  /// mutations is unspecified.
  public init(reflecting subject: Any) {
    if let customized? = subject as? CustomReflectable {
      self = customized.customMirror()
    }
    else {
      self = Mirror(Swift.reflect(subject))
    }
  }
  
