Unbounded Loops In Quantum Programs: Categories And Weak While Loops