Practical probabilistic programming with monads
probabilistic inference using markov chain monte carlo methods .