def METHOD_NAME(circuit: qml.tape.QuantumScript, rng=None, debugger=None) -> Result:
    """Simulate a single quantum script.
    This is an internal function that will be called by the successor to ``default.qubit``.
    Args:
        circuit (QuantumTape): The single circuit to simulate
        rng (Union[None, int, array_like[int], SeedSequence, BitGenerator, Generator]): A
            seed-like parameter matching that of ``seed`` for ``numpy.random.default_rng``.
            If no value is provided, a default RNG will be used.
        debugger (_Debugger): The debugger to use
    Returns:
        tuple(TensorLike): The results of the simulation
    Note that this function can return measurements for non-commuting observables simultaneously.
    This function assumes that all operations provide matrices.
    >>> qs = qml.tape.QuantumScript([qml.RX(1.2, wires=0)], [qml.expval(qml.PauliZ(0)), qml.probs(wires=(0,1))])
    >>> simulate(qs)
    (0.36235775447667357,
    tensor([0.68117888, 0.        , 0.31882112, 0.        ], requires_grad=True))
    """
    state, is_state_batched = get_final_state(circuit, debugger=debugger)
    return measure_final_state(circuit, state, is_state_batched, rng=rng)