  We elaborate on using importance sampling for causal reasoning, in particular
for counterfactual inference. We show how this can be implemented natively in
probabilistic programming. By considering the structure of the counterfactual
query, one can significantly optimise the inference process. We also consider
design choices to enable further optimisations. We introduce MultiVerse, a
probabilistic programming prototype engine for approximate causal reasoning. We
provide experimental results and compare with Pyro, an existing probabilistic
programming framework with some of causal reasoning tools.
