def modified(*args, **kargs):
    position = 1
    for (arg, T) in zip(args, types):
        if (not isinstance(arg, T)):
            raise TypeError(('Positional arg (%d) should be of type(s) %s, got %s' % (position, T, type(arg))))
        position += 1
    for (key, arg) in kargs.items():
        if (key in ktypes):
            T = ktypes[key]
            if (not isinstance(arg, T)):
                raise TypeError(("Keyworded arg '%s' should be of type(s) %s, got %s" % (key, T, type(arg))))
    return func(*args, **kargs)
def modified(*args, **kargs):
    position = 1
    for (arg, T) in zip(args, types):
        if (not isinstance(arg, T)):
            raise TypeError(('Positional arg (%d) should be of type(s) %s, got %s' % (position, T, type(arg))))
        position += 1
    for (key, arg) in kargs.items():
        if (key in ktypes):
            T = ktypes[key]
            if (not isinstance(arg, T)):
                raise TypeError(("Keyworded arg '%s' should be of type(s) %s, got %s" % (key, T, type(arg))))
    return func(*args, **kargs)