# Concepts
The definitions of trees are as follows:
* A tree is composed of one or more nodes.
* A node has zero or more nodes as its children.
* A node has zero or one node as its parent.
* The node without parent is called the tree's root.
* A node associates data of generic type, and data of all nodes in the same tree
must be of the same type.
* Children nodes preserve insertion order.
* A forest is composed of zero or more nodes.
* A node's children is a non-owning forest.
* Two node's are siblings if their parents are the same node.