     }
 
     #if swift(>=3.0)
-        public init<S : Sequence where S.Iterator.Element == Byte>(_ elements: S) {
+        public init<S : Sequence>(_ elements: S) where S.Iterator.Element == Byte {
             self.init(Array(elements))
         }
     #else


            loop: while true {
                switch decoder.decode(&generator) {
                case .scalarValue(let char): string.append(char)
                case .emptyInput: break loop
                case .error: throw StringError()
                }
            }


}

#if swift(>=3.0)
    public func += <S : Sequence>(lhs: inout Data, rhs: S) where S.Iterator.Element == Byte {
        return lhs.bytes += rhs
    }
#else
