Turns out the issue happens to be that ArrayValue uses a list of values which needs to be translated to an array of the percise type before it is used by callBy This also addresses handling of arguments after a vararg in an annotation