iterator_arrow<Container> operator->() { return apply_arrow(this->sub_iter); }
iterator_arrow<CombinatorType> operator->() { apply_arrow(this->comb_iter); }