pub trait TreePath<IdN = NodeIdentifier, Idx = u16> {
    // Required methods
    fn node(&self) -> Option<&IdN>;
    fn offset(&self) -> Option<&Idx>;
    fn check<'store, HAST>(&self, stores: &'store HAST) -> Result<(), ()>
       where HAST: HyperAST<'store, IdN = IdN::IdN>,
             HAST::T: WithChildren<ChildIdx = Idx>,
             HAST::IdN: Eq,
             IdN: NodeId,
             IdN::IdN: NodeId<IdN = IdN::IdN>;
}