 	}
 
 
-	
 	public func firstMatching(predicate: (Iterator.Element) throws -> Bool) rethrows -> Iterator.Element? {
 		for element in self where try predicate(element) {
 			return element


public extension Sequence where Iterator.Element == String {

	
	public func joinWithSeparator(_ separator: String, lastSeparator: String) -> String {
		return joinWithSeparator(separator, lastSeparator: lastSeparator, transform: identity)
	}


		return nil
	}

	
	public func joinWithSeparator(_ separator: String, lastSeparator: String, transform: (Iterator.Element) throws -> String) rethrows -> String {
