Quantum Programming With Inductive Datatypes: Causality and Affine Type Theory