def intadd(num1: int, num2: int) -> int:
    """Adds two numbers, assuming they're both positive integers.

    Parameters
    ----------
    num1, num2 : int
        Positive integers

    Returns
    -------
    int
        Resulting positive integer

    Raises
    ------
    ValueError
        If either number is negative
    TypeError
        If either number isn't an integer
    """
    if (not isinstance(num1, int)) or (not isinstance(num2, int)):
        raise TypeError(f"Received {num1, num2}; expected integers, not {type(num1), type(num2)}")
    if (num1 < 0) or (num2 < 0):
        raise ValueError(f"Received {num1, num2}; expected positive integers")
    return num1 + num2