Potential document child, so an element, processing instruction or comment
Arbitrary comment node
Arbitrary element node
Arbitrary entity reference node
Arbitrary node
Arbitrary processing instruction node
Arbitrary text node
Abstract node (marker) trait hierarchy. It offers a common minimal API for different kinds of nodes. It also shows what yaidom typically considers to be nodes, and what it does not consider to be nodes. For example, documents are not nodes in yaidom, so it is thus prevented to create documents as element children. Moreover, attributes are typically not nodes in yaidom, although custom element implementations may think otherwise.
The down-side is that we have to consider mixing in these traits everywhere we create a node/element implementation.