Como os Geradores cujo Elemento é Opcional sabem quando chegaram ao fim?

The SwiftGeneratorType referência diz sobre onext método:

next() Avance para o próximo elemento e retorne-o, ou nulo se não houver outro elemento.

E então na discussão, diz

Requer:next() não foi aplicado a uma cópia doself desde que a cópia foi feita e nenhuma chamada anterior paraself.next() Voltounil. As implementações específicas deste protocolo são encorajadas a responder a violações deste requisito chamandopreconditionFailure("...").

Se o gerador for para um tipo opcional, é possível que ele atinja umnil antes de chegar ao final da sequência. Como Swift sabe que não chegou ao fim neste caso?

questionAnswers(1)

yourAnswerToTheQuestion