 
 func allRanks() -> [Rank] {
     var all = [Rank]()
-    var generator = Rank.RankGenerator()
-    while let next = generator.next() {
-        all.append(next)
+    for rank in Rank.Ace {
+        all.append(rank)
     }
     return all
 }


func allSuits() -> [Suit] {
    var all = [Suit]()
    var generator = Suit.SuitGenerator()
    while let next = generator.next() {
        all.append(next)
    }
    return all
}

    static func fullDeck() -> [Card] {
        // *** This is the real reason why I wrote this playground: the ability to use generators on suit and rank ***
        var deck = [Card]()
        for suit in Suit.Spades {
            for rank in Rank.Ace {
                let card = Card(rank: rank, suit: suit)
                deck.append(card)
            }
