Probabilistic Functional Programming

Details
Martin Erwig and Steve Kollmansberger introduced Probabilistic Functional Programming in 2006 (http://web.engr.oregonstate.edu/~erwig/pfp/).
PFP is a library and a DSL for doing probabilistic calculations in Haskell. At its heart is a nondeterminism monad similar to the list monad, but augmented with probabilities. The library makes it easy to create probability distributions and put together complex stochastic simulations.
It suffers from one major drawback, however -- just like with Sets, it seems impossible to construct an efficient Monad instance for probability distributions, which means that the library can be quite inefficient. But in fact, it's not impossible to write an efficient monad instance - in fact it's quite easy, just requiring a simple use of GADTs.
In this talk I'll explain the basics of the PFP library and how to make it more efficient, and hopefully delve into some of the extremely cool code you can write with it. If there's time I might even explain how it's possible to do quantum calculations in PFP...

Needs a date and time
Probabilistic Functional Programming