uninitialized dflts, should act like args.
optimize with nil star & starstar; lazily make them.
function call cleanup