new function: Function.compose
merged in develop