let bases: [Character] = ["A", "C", "G", "T"] enum Action: CaseIterable { case swap, delete, insert } @discardableResult func mutate(dna: inout String) -> Action { guard let i = dna.indices.shuffled().first(where: { $0 != dna.endIndex }) else { fatalError() } let action = Action.allCases.randomElement()! switch action { case .swap: dna.replaceSubrange(i..