import java.util.Iterator;
import java.util.function.Consumer;

public interface Loop<E> extends Iterator<E>{
	boolean test();
	E get();
	void step();
	default boolean hasNext() {
		return test();
	}
	default E next() {
		var r = get();
		step();
		return r;
	}
	
	default void forEach(Consumer<E> c) {
		while (test()){
			c.accept(get());
			step();
		}
	}
	
}
