next is stricter than (the new behaviour of)
rest because it needs to evaluate the structure of the lazy cons to know whether to return
nil or a seq.
rest on the other hand always returns a seq, so nothing needs to be evaluated until you actually use the result of
rest. In other words,
rest is more lazy than next.
next is like
(seq (rest ...)).
rest will return the remaining piece of a sequence. If that piece of the sequence has not yet been realized, rest doesn't force it. It won't even tell you if there are more elements left in the sequence.
next does the same thing but then forces at least one element of the sequence to be realized. So if
nil, you know there aren't any more elements left in the sequence.