I think, to be more precise, that it should state that the function diverges at the first infinite subsequence without true element it met. For instance, on `append (singleton 0) (cycle 1) (cycle 2) (singleton 0)` (say), `filter (= 0)` diverges only after it returns the first element.