I know nothing about the probabilistic programming, but would not it be easier (and more applicable) to have a library with relevant functionality and a bunch of interfaces for Go/C/Python/... than to implement a new language? An honest question.
var combined = from isAmerican in Bernoulli(0.25)
from grade in isAmerican ? americanGrades : indianGrades
select grade;
This is now a new model that can be composed further with other models. Building models like this feels very expressive.The inference method is also completely decoupled from the model specification process, allowing us to perform a Sequential Monte Carlo just by writing:
var smcResults = combined.SmcMultiple(100);
or var pimhResults = combined.Pimh(10);
for a Particle-Independant Metropolis-Hastings.There's more examples here: https://github.com/joashc/csharp-probability-monad
In their list there are libraries for Scala, .NET, Python, C, OCaml and Javascript.