 	/// - Returns: number of times the condition evaluated to true.
 	public func count(where condition: (Element) throws -> Bool) rethrows -> Int {
 		var count = 0
-		for element in self {
-			if try condition(element) { count += 1 }
+		for element in self where try condition(element) {
+            count += 1
 		}
 		return count
 	}

	///     [1, 2, 3, 4].rotate(by: 3) -> [2,3,4,1]
	///     [1, 2, 3, 4].rotated(by: -1) -> [2,3,4,1]
	///
	/// - Parameter places: Number of places that the array should be rotated. If the value is positive the end becomes the start, if it negative it's that start becom the end.
	///
	/// - Returns: self after rotating
	public mutating func rotate(by places: Int) -> [Element] {

		swapAt(index, otherIndex)
	}

	/// SwifterSwift: Get the first index where condition is met.
	///
	///		[1, 7, 1, 2, 4, 1, 6].firstIndex { $0 % 2 == 0 } -> 3
	///
