"""An example of persistence for a directed graph structure. The
graph is stored as a collection of edges, each referencing both a
"lower" and an "upper" node in a table of nodes. Basic persistence
and querying for lower- and upper- neighbors are illustrated::
n2 = Node(2)
n5 = Node(5)
n2.add_neighbor(n5)
print n2.higher_neighbors()
.. autosource::
"""