Seol mar théacs é seo: Commutative semantics for probabilistic programming