Library to create, query, navigate and display hierarchy structures. Creation: After having created a hierarchy with `hierarchy-new', populate it by calling `hierarchy-add-tree' or `hierarchy-add-trees'. You can then optionally sort its element with `hierarchy-sort'. Querying: You can learn more about your hierarchy by using functions such as `hierarchy-roots', `hierarchy-has-item', `hierarchy-length', `hierarchy-parent', `hierarchy-descendant-p'. Navigation: When your hierarchy is ready, you can use `hierarchy-map-item', `hierarchy-map', and `map-tree' to apply functions to elements of the hierarchy. Display: You can display a hierarchy as a tabulated list using `hierarchy-tabulated-display' and as an expandable/foldable tree using `hierarchy-convert-to-tree-widget'. The `hierarchy-labelfn-*' functions will help you display each item of the hierarchy the way you want it.