  We study the two dual quantum information effects to manipulate the amount of
information in quantum computation: hiding and allocation. The resulting
type-and-effect system is fully expressive for irreversible quantum computing,
including measurement. We provide universal categorical constructions that
semantically interpret this arrow metalanguage with choice, starting with any
rig groupoid interpreting the reversible base language. Several properties of
quantum measurement follow in general, and we translate (noniterative) quantum
flow charts into our language. The semantic constructions turn the category of
unitaries between Hilbert spaces into the category of completely positive
trace-preserving maps, and they turn the category of bijections between finite
sets into the category of functions with chosen garbage. Thus they capture the
fundamental theorems of classical and quantum reversible computing of Toffoli
and Stinespring.
