úÎ ò·(      !"#$%&' ()()() \The Main class, this is -- effectively -- a type-indexed record. Specifically, it requires G two types, one representing the suit, the other representing the index/rank. The suit, L index, and construct functions are generic forms of the record accessors. [The bulk of the implementation takes place in generic type instances, supporting equality 2 irrelevant of ordering, ordering, parsing from a  normal form ( index- suit ) and enum/bounded TODO: Write deriving instance?    %A type to separate Hands from Decks.     4Type wrapper for stateful decks, useful for sorting ESeparate Deck from Hand, even though the types are isomorphic, we don't want shuffling to  be to liberal. mTODO: Make Deck clever enough to support reshuffling when the deck runs out -- it should store cards it has E already seen till it runs out of the main deck, reshuffle, redeal. Creates a deck, used as in: `mkDeck:: your deck type here`, or w/ inference. "Shuffles a deck given a generator &Shuffles using the standard generator Deals n hands of qty$ cards, written in the state monad. 6Helper for dealHands, also somewhat useful, equiv. to `dealHands 1 qty`    8Type synonyms to make using the polymorphic bits easier The Indices of the french deck The Suits of the so-called French) deck, the most common American deck of  cards.  !"TWrapper which forces the polymorphic dealHands to work with French-deck cards only.  !*"!  !" !*"! "$  !*"  #$%&'+#$,-./01234%&'#$%&'+#$,-./01234%&'#$%&' 56789: 567;8<9:=>56789:?    !"#$%&'()*+ , - . / 012 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E FG HCard-0.0 Data.HCardData.HCard.InstancesData.HCard.ExamplesData.HCard.MiscData.HCard.CardData.HCard.HandData.HCard.DeckData.HCard.Instances.ClassicData.HCard.Examples.CribbageData.HCard.Test.TestParseparseCardsCardCardTsuitindex construct@@HandDeckSTDeckmkDeck shuffleDeck shuffleDeckIO dealHandsdealHand ClassicHand ClassicDeckST ClassicDeckClassicIndexVKingQueenJackAceSuitSCDHdeal cribbageScoretoValue filterSuitsallKTups uniqPairssubsetallBddscore countFifteens countPairs countRuns countFlush countHeelsisRunhand1hand2cutclassic_shuffle_eqclassic_deal_subset_deckclassic_deal_union_idshow_parse_id_classic subset_prop subset_eqdeck_hand_testsparse_show_tests misc_teststest