  Causal inference can be formalized as Bayesian inference that combines a
prior distribution over causal models and likelihoods that account for both
observations and interventions. We show that it is possible to implement this
approach using a sufficiently expressive probabilistic programming language.
Priors are represented using probabilistic programs that generate source code
in a domain specific language. Interventions are represented using
probabilistic programs that edit this source code to modify the original
generative process. This approach makes it straightforward to incorporate data
from atomic interventions, as well as shift interventions, variance-scaling
interventions, and other interventions that modify causal structure. This
approach also enables the use of general-purpose inference machinery for
probabilistic programs to infer probable causal structures and parameters from
data. This abstract describes a prototype of this approach in the Gen
probabilistic programming language.
