Объясните разницу между SequenceType, GeneratorType и CollectionType на языке программирования Swift.
Кроме того, если я реализую свою собственную структуру данных, что было бы преимуществом при использовании протоколов SequenceType, GeneratorType или CollectionType?