Name functions according to 'what' instead of 'how' in the [tailcall]
machinery, in view of making public some parts of it.
merge trunk
merge trunk