bool end() const { return cur == last; }
Move move() const { return cur->move; }
size_t size() const { return last - mlist; }
bool end() const { return cur == last; }
Move move() const { return cur->move; }
size_t size() const { return last - mlist; }