   /// String printed by `debugPrint` function
   public var debugDescription: String {
     return self.rawXML
+  }
+}
+
+/// For printing an `XMLDocument`
+extension XMLDocument: CustomStringConvertible, CustomDebugStringConvertible {
+  /// String printed by `print` function
+  public var description: String {
+    return self.root?.rawXML ?? ""
+  }
+  
+  /// String printed by `debugPrint` function
+  public var debugDescription: String {
+    return self.root?.rawXML ?? ""
   }
 }
 

import libxml2

// Public Helpers
extension XMLElement: CustomStringConvertible, CustomDebugStringConvertible {
  /// String printed by `print` function
  public var description: String {

  }
}

// Just a smiling helper operator making frequent UnsafePointer -> String cast

prefix operator ^-^ {}
internal prefix func ^-^ <T> (ptr: UnsafePointer<T>) -> String? {
