fix bugs in defs with only keyword args, and in optional args + varargs
more tests