What should we add?
It'd be nice if we had a qk_dag_replace_block function to replace a slew of blocks with a single operation node.
This is again possibly tricky for the reason that we don't have an operation type, so we'd need possibly a few specialized functions. At the very least, a qk_dag_replace_block_with_unitary.