Stuff I actively maintain:
declarative is a suite of Markov Chain Monte Carlo (MCMC) libraries for Haskell. In addition to declarative itself, it consists of the following libraries that each export a production-quality transition operator and sampler:
There’s also mcmc-types which provides a bunch of types common to each.
You can create custom Markov chains using arbitrary convex combinations of these transition operators via a simple shallowly-embedded DSL. There’s basic support for annealing of transition operators, as well.
flat-mcmc is a production-quality implementation of a so-called affine invariant ensemble sampler. It is an excellent general-purpose Monte Carlo sampler that requires zero fiddling while being suitable for many problems.
mwc-probability is a sampling-based probability monad implemented as a simple wrapper over the mwc-random library.
sampling is a Haskell library providing basic functionality for sampling with/without replacement from arbitrary Foldable collections.
Miscellanea potentially of wider interest:
bnp contains some exploratory R work I did around various Bayesian nonparametrics models in 2016.
deanie is a toy embedded probabilistic programming language supporting rejection sampling, importance sampling, and basic Metropolis sampling.
urbit-hob provides Haskell support for dealing with Hoon’s @p and @q auras via a finite-domain Feistel cipher.
Assorted stuff potentially of broader interest:
cryptopals contains solutions to the famous cryptopals exercises.
azimuth-hs is the same, but for Haskell.
lgram is a simple command-line tool for drilling Latin grammar.
ti3-sampler is a simple little application I hacked together for sampling random locations on a Twilight Imperium board.
drb is a command-line Douay-Rheims.