-----------------------------------------------------------------------------
-- |
-- Module      :  Data.Poker
-- Copyright   :  Public Domain
-- License     :  Public Domain
--
-- Maintainer  :  lemmih@gmail.com
-- Stability   :  provisional
-- Portability :  portable
--
-----------------------------------------------------------------------------
module Data.Poker
    (
    -- * Evaluation
    handValue,
    handValue_n,
    numericalHandValue,
    numericalHandValue_n,
    -- * Enumeration
    foldlSevenCards,
    foldlFiveCards,
    foldlFourCards,
    foldlThreeCards,
    foldlTwoCards,
    foldlOneCard,
    enumerateFiveCards,
    -- * HandValue
    HandValue(..),
    NumericalHandValue,
    ConsecutiveHandValue,
    -- * Cards
    Card,
    Rank(..),
    Suit(..),
    Kicker,
    mkCard,
    cardRank,
    cardSuit,
    -- * Card sets
    CardSet,
    toList,
    fromList,
    singleton,
    size,
    empty,
    isEmpty,
    union,
    intersection,
    inverse,
    member,
    countRank,
    countSuit,
    -- * Auxiliary functions
    -- ** HandValue
    isNoPair,
    isOnePair,
    isTwoPair,
    isThreeOfAKind,
    isStraight,
    isFlush,
    isFullHouse,
    isFourOfAKind,
    isStraightFlush,
    ) where


import Data.Poker.Deck
import Data.Poker.Evaluate
import Data.Poker.Enumerate