interface Stream<A> {
    A head ();        // peep at first element of stream
    void next ();     // advance to next element of stream
    A getNext ();     // return first element and advance stream
}

class ConstantStream<A> implements Stream<A> {
    final A a;
    ConstantStream (final A a) { this.a = a; }
    public A head() { return a; }
    public void next () { }
    public A getNext () { return a; }
}
