call(Goal,Arg) allows to append the argument Arg to the arguments of Goal and call the resulting goal, e.g.
call(succ(1), R).
is the same as
succ(1, R).
However, I don't want to append to the argument list, but instead prepend, e.g.
callpre(succ(1), R).
should result in
succ(R, 1).
How can I prepend arguments to the list of Goal's arguments and call the resulting goal?