An operation as understood by Quirk's parser.
*keys, can_merge: bool = True
) -> None
Basically just a series of text identifiers for each qubit, and some rules
for how things can be combined.
The JSON object(s) that each qubit is turned into when
explaining a gate to Quirk. For example, a CNOT is turned into
the keys ["•", "X"].
Note that, when keys terminates early, it is implied that later
qubits should use the same key as the last key.
Whether or not it is safe to merge a column containing
this operation into a column containing other operations. For
example, this is not safe if the column contains a control
because the control would also apply to the other column's
control_count: int = 1
) -> 'QuirkOp'