// error return types are self-documenting imo
// panics are bugs
// let me name my stuff how i want
//! # Grapes: Persistent Graph Data Structures
//!
//! The data structures are persistent: Cheap to clone, so you can keep (and modify) older versions of the data structure easily.
//!
//! Data Structures:
//! - [Tree](tree::Tree): collection of nodes with ordered children
//! - [MapTree](map_tree::MapTree): maintains a key-node mapping in addition to a tree
//! - [Graph](graph::Graph): collection of nodes connected by edges
//! - [MapGraph](map_graph::MapGraph): also maintains a key-node and key-edge mapping
//! - [Arena](arena::Arena): for building arbitrary graph-like data structures