public abstract class Enumerator<A>
implements Enumeration<A>
{
public abstract boolean hasMoreElements();
public abstract A nextElement();
public Enumerator<A> concat(Enumerator<A> rest);
public <B> Enumerator<B> map((A) -> B f);
public Enumerator<A> takeWhile((A) -> boolean p);
public Enumerator<A> dropWhile((A) -> boolean p);
public Enumerator<A> filter((A) -> boolean p);
public <B> void forall((A) -> B f);
public <B> B reduceLeft(B z,
(B, A) -> B f);
public <B> B reduceRight((A, B) -> B f,
B z);
public Enumerator();
}