> However, I see that in the function 'jarg' you are doing the same (check
> for all kinds of types).
yes, it happens in Java methods: 'jarg' and 'isInstance'. These are
necessary to automatically handle primitive types and I think it is
impossible to reduce it further while preserving the functionality.
> I cannot see, though, whether you also handle a mapping of Lisp lists
> from/to Java arrays, which doubles the code in the case of ErsatzLisp.
I think there are two functions: 'jv2l' and 'jvector'.