The contract function within opt_einsum can take multiple tensors as arguments, but the cc_contract function is limited to binary contractions. This is because of a choice in the GPU implementation to specialize for two tensors, but can this be generalized?