def METHOD_NAME(signature):
    """Check the signature of a quantum transform: (tape, ...) - > (Sequence(tape), fn)"""
    # Check that the arguments of the transforms follows: (tape: qml.tape.QuantumTape, ...)
    tape = signature.get("tape", None)
    if tape is None:
        raise TransformError("The first argument of a transform must be tape.")
    if tape != qml.tape.QuantumTape:
        raise TransformError("The type of the tape argument must be a QuantumTape.")
    # Check return is (qml.tape.QuantumTape, callable):
    ret = signature.get("return", None)
    if ret is None or not isinstance(ret, tuple):
        raise TransformError(
            "The return of a transform must match (collections.abc.Sequence["
            "pennylane.tape.tape.QuantumTape], <built-in function callable>)"
        )
    if ret[0] not in (
        Sequence[qml.tape.QuantumTape],
        List[qml.tape.QuantumTape],
        Tuple[qml.tape.QuantumTape],
    ):  # pylint:disable=unsubscriptable-object
        raise TransformError(
            "The first return of a transform must be a sequence of tapes: collections.abc.Sequence["
            "pennylane.tape.tape.QuantumTape]"
        )
    if ret[1] != Callable:
        raise TransformError(
            "The second return of a transform must be a callable: <built-in function callable>"
        )