title: What is the difference between SequenceType and CollectionType in swift?
body: <p>Please explain the difference between <code>SequenceType</code>, <code>GeneratorType</code> and <code>CollectionType</code> in the Swift programming language.</p>
  
  <p>Also, if I am implementing my own data structure what would be the advantage of using <code>SequenceType</code>, <code>GeneratorType</code> or <code>CollectionType</code> protocols?</p>