リファレンスの読み方ですが、SequenceプロトコルのmakeIterator()メソッドは、
「Instance Methods」で記述されていて、「Default Implementations」側には記述されていません。つまり、Sequenceプロトコルを採用したクラスで、makeIterator()を使用する場合、実装が必要だと判断してしまいますが、実際は必要ありませんでした。

struct Countdown: Sequence, IteratorProtocol {
    var count: Int

    mutating func next() -> Int? {
        if count == 0 {
            return nil
        } else {
            defer { count -= 1 }
            return count
       }
    }
}

var iter = Countdown(count:3).makeIterator()

for i in iter{
    print(i)
}

この場合のリファレンスの解釈の仕方教えてください。

勉強中でリファレンスを見ているのですが、読み方難しい。
また日本語はないのでしょうか。