 
         return ElementNode.knownElements.contains(standardName)
     }
+
+
+    // MARK: - ElementNode Equatable
+
+    static func ==(lhs: ElementNode, rhs: ElementNode) -> Bool {
+        return lhs.name == rhs.name && lhs.attributes == rhs.attributes && lhs.children == rhs.children
+    }
 }
 
+
+// MARK: - RootNode
 
 class RootNode: ElementNode {
 

            return result ^ attribute.hashValue
        }

        return name.hashValue ^ attributesHash
    }

    

        }
    }


    // MARK: - Editing behavior

    func isSupportedByEditor() -> Bool {
