  Our primary purpose is to isolate the abstract, mathematical properties of
circuits -- both classical Boolean circuits and quantum circuits -- that are
essential for their computational interpretation. A secondary purpose is to
clarify the similarities and differences between the classical and quantum
situations. The general philosophy in this note is to include the
mathematically essential aspects of circuits but to omit any of the additional
structures that are usually included for convenience. We shall, however, retain
the assumption that circuits are finite; this assumption does no harm to the
applicability of our approach and is necessary for some of our work.
