fn short_circuit_preorder<'a, 'tcx, F, Iter>(
    body: &'a Body<'tcx>,
    filtered_successors: F
) -> impl Iterator<Item = BasicBlock> + Captures<'a> + Captures<'tcx>
where F: Fn(BasicBlock) -> Iter, Iter: IntoIterator<Item = BasicBlock>,