  Free categorical constructions characterise quantum computing as the
combination of two copies of a reversible classical model, glued by the
complementarity equations of classical structures. This recipe effectively
constructs a computationally universal quantum programming language from two
copies of Pi, the internal language of rig groupoids. The construction consists
of Hughes' arrows. Thus answer positively the question whether a computational
effect exists that turns reversible classical computation into quantum
computation: the quantum effect. Measurements can be added by layering a
further effect on top. Our construction also enables some reasoning about
quantum programs (with or without measurement) through a combination of
classical reasoning and reasoning about complementarity.
