Text this: Commutative semantics for probabilistic programming