I noticed the other day that my “Build Your Own Probability Monads” paper had disappeared. It’s back online with a new introduction:

Several years back, I wrote a series of blog posts about probability monads inspired by this quote:

A very senior Microsoft developer who moved to Google told me that Google works and thinks at a higher level of abstraction than Microsoft. “Google uses Bayesian filtering the way Microsoft uses the if statement,” he said. -Joel Spolsky

My goal was to make it easier to reason about evidence by combining Bayes’ Rule and probability monads:

fluStatusGivenPositiveTest = do
  fluStatus  <- percentWithFlu 10
  testResult <- if fluStatus == Flu
                  then percentPositive 70
                  else percentPositive 10
  guard (testResult == Pos)
  return fluStatus

You can find links to the original blog posts, the paper, and the source code from Hac 07 on the new overview page, which is intended to be the official, long-term home for this work.