IBAL: a probabilistic rational programming language | Synapse