         return prefix + String(describing: value) + "\n"
     }
     
-    fileprivate static func newline(value: Any) -> String {
+    fileprivate static func indent(level: Int) -> String {
+        return Array(repeating: "  ", count: level).joined()
+    }
+    
+    private static func newline(value: Any) -> String {
         let needsNewLine: Bool = {
             if let array = value as? [Any] {
                 return array.count > 0


extension Inspector {
    
    // Use this function to lookup the struct content:
    // (lldb) po Inspector.print(sut) as AnyObject
    
    static func print(_ value: Any) -> String {
        return typeName(value: value) + print(attributesTree(value: value), level: 1)
    }
    

        guard count > 0 else {
            return " = []\n"
        }
        let indent = Inspector.indent(level: level)
        return enumerated().reduce("") { (str, pair) -> String in
            return str + indent + "[\(pair.offset)]" + Inspector.print(pair.element, level: level + 1)
        }
    }
}
