  We present a novel sampling framework for probabilistic programs. The
framework combines two recent ideas -- \emph{control-data separation} and
\emph{logical condition propagation} -- in a nontrivial manner so that the two
ideas boost the benefits of each other. We implemented our algorithm on top of
Anglican. The experimental results demonstrate our algorithm's efficiency,
especially for programs with while loops and rare observations.
