# flags: --minimum-version=3.12

def f1[T: (int, str)](a,): pass

def f2[T: (int, str)](a: int, b,): pass

def g1[T: (int,)](a,): pass

def g2[T: (int, str, bytes)](a,): pass

def g3[T: ((int, str), (bytes,))](a,): pass

def g4[T: (int, (str, bytes))](a,): pass

def g5[T: ((int,),)](a: int, b,): pass

# output

def f1[T: (int, str)](
    a,
):
    pass


def f2[T: (int, str)](
    a: int,
    b,
):
    pass


def g1[T: (int,)](
    a,
):
    pass


def g2[T: (int, str, bytes)](
    a,
):
    pass


def g3[T: ((int, str), (bytes,))](
    a,
):
    pass


def g4[T: (int, (str, bytes))](
    a,
):
    pass


def g5[T: ((int,),)](
    a: int,
    b,
):
    pass
