## statistical

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:

• NestedSampling.hs is a Haskell implementation of Skilling’s nested sampling that I co-authored with Brendon Brewer.

• hnuts is an implementation of the No U-Turn Sampler (NUTS) in Haskell.

• measurable is a simple, shallowly-embedded, illustrative language for working with measures in the form of the Giry monad.

• 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.

## data structures

• up is a priority search queue (+up) and LRU cache (+lu) for Hoon, complete with a full suite of u3 jets in C, in the spirit of Haskell’s psqueues library.

• okasaki contains Haskell implementations of data structures from Chris Okasaki’s Purely Functional Data Structures, typically using recursion schemes and often via continuation-passing style.

## misc

Assorted stuff potentially of broader interest:

• hnock is a basic Nock interpreter for Haskell.

• cryptopals contains solutions to the famous cryptopals exercises.

• azimuth-js is a JavaScript library providing Azimuth contract bindings.

• 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.

• praxis are various programming exercises I’ve done over the years, mostly taken from Programming Praxis.