extension Array where Element: Equatable { func next(after element: Element?) -> Element? { if element.isNil { return first } let idx = firstIndex(of: element!) if idx.isNil { return first } let next = index(after: idx!) return self[next == endIndex ? startIndex : next] } }