static inline void insertBefore( IndexType target, IndexType newNode, std::function< ListHook &( IndexType ) > getter ) {
auto &targetRef = getter( target );
auto &newNodeRef = getter( newNode );
newNodeRef.next = target;
newNodeRef.prev = targetRef.prev;
getter( targetRef.prev ).next = newNode;
targetRef.prev = newNode;
}