A probabilistic programming language