// represent the traversal of a list of Object-s class AListRange implements IRange{ ALoObj alist; AListRange(ALoObj alist){ this.alist = alist; } // is there a current element available in the structure boolean hasMore(){ return alist instanceof ConsLoObj; } // produce the current element of the structure Object current(); // produce an iterator for the rest of this structure IRange next(); }