Currently we have ZFunctionCall, which is useful to represent types that have function calls instead of references (for example, lists). However, a ZFunctionCall could contain not only the reference of the persisted Function that is being called, but the literal Function. In this case it would be helpful to have a ZFunction class with convenience getters.
This would also ease other parts of the code, such as retrieving the labels of function arguments for converting a ZObject to human-readable format (ZObjectUtils::getLabelOfFunctionArgument)