There are various workarounds for the absence of SE-0142 in Swift 3.0. In particular, we would like to be able to say:
protocol SQLClient {
associatedtype RowStateSequence: Sequence where RowStateSequence.Iterator.Element == RowState
}
But we can't. Instead, we've added equivalent where clauses to various generic types and protocol extensions where this relationship is important in some way. It would be great to clear these away.