@JeffBezanson: Not totally sure about this. In the case `jl_call2(f, new_thing1(), new_thing2())` the arguments of the `new_thing1/2` functions have to be rooted before. But the returned values not, or? How can they when they are part of the `jl_call2` call...

But anyway. I can change this if you want. I just completed the `jl_call` functions that were already there. In the documentation there is currently no mention that `jl_call` will root the arguments