         ///
         /// - Returns: the right sibling, or `nil` if none exists.
         ///
-        func rightSibling() -> ElementNode? {
+        func rightSibling() -> Node? {
 
             guard let parent = parent else {
                 return nil


            let index = parent.indexOf(childNode: self)

            guard let sibling = parent.sibling(rightOf: index) else {
                return nil
            }

            return sibling as? ElementNode
        }

        // MARK: - Paragraph Separation Logic

        ///
        func needsClosingParagraphSeparator() -> Bool {

            if let rightSibling = rightSibling() as? ElementNode, rightSibling.isBlockLevelElement() {

                return true
            }
