> > Yes it should be _equal()
>
> Excellent solution, actually. Didn't think of that.
That is, it probably still shouldn't throw errors, since equal() can
be used on arbitrary structures too, and there might be cases when the
caller doesn't know what things it might encounter during its
recursion. But it's still an excellent idea to use _equal instead of
`==, so that == can be used to check whether the arguments are the
same iterator.