Generalised TailCall optimisation.