poker-base: A library for core poker types

[ bsd3, library, poker ] [ Propose Tags ]

This package provides datatypes and support for poker computation in Haskell.


>>> import Poker
>>> Just h = mkHole (Card Ace Club) (Card Two Diamond)
>>> holeToShortTxt h

Please see the README on GitHub at for an overview.

[Skip to Readme]


Maintainer's Corner

For package maintainers and hackage trustees


  • No Candidates
Versions [RSS]
Change log
Dependencies base (>=4.11 && <5), containers (>=0.5 && <0.7), generic-arbitrary (>=0.1 && <0.3), prettyprinter (>=1.6 && <1.8), QuickCheck (>=2.12 && <2.15), safe-money (>=0.9 && <0.10), text (>=0.11 && <1.3) [details]
License BSD-3-Clause
Copyright 2021 Santiago Weight
Author Santiago Weight
Category Poker
Home page
Bug tracker
Source repo head: git clone
Uploaded by santiweight at 2021-10-23T02:39:00Z
Distributions NixOS:
Downloads 86 total (2 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2021-10-23 [all 1 reports]

Readme for poker-base-

[back to package description]


Hackage Build Status


poker-base provides datatypes and supporting infrastructure to handle poker computation. Once developed, the package intends to be industry-ready and provide capabilities that support poker websites, simulation, research and poker trainers and assistants.

Pull requests or suggestions (preferably created in an issue), are not just encouraged but highly requested! We are quick to respond to any help you might need :)


-- >>> import Poker
-- >>> Just h = mkHole (Card Ace Club) (Card Two Diamond)
-- >>> holeToShortTxt h
-- "Ac2d"


To become Haskell's core de facto library for poker applications. We are working on this library so that your poker work can use poker-base, and its children packages, seamlessly.

Some principles that this library aims to uphold:

  • Targeted at intermediate Haskellers. This package will not shy away from using Haskell features that we deem right-for-the-job. However, we also make an effort to make poker-base's API usable for the intermediate Haskeller.
  • Thin around the waist. This library aims to contain only such datatypes and functionality that are uncontroversial (~90% agree). If a datatype or API would be incompatible with some people's needs, then that functionality will not be included poker-base.
  • 100% test coverage/documentation!
  • Fast. This library is intended to be fast. However, note that API usability will come over speed always. Thankfully, Haskell has features such as newtype and PatternSynonyms which we use to hide implementation details.

Libraries based on poker-base

  • poker-game: a library for the rules of no-limit poker (not just holdem)
  • poker-histories: a library for parsing poker site hand histories. Currently supports PokerStars and Bovada.
  • poker-ai: an experimental platform for researching poker strategy and intelligence.
  • Various other private repos. If you are interested - please drop a line to the authors :)


See for guidelines.


See for help regarding the rules of poker and resources for implementing poker applications.