getResultType

Returns the type of a call to this function with a given set of
arguments.

The default implementation makes the coarse assumption that the return
type is in some way related to the type of the first argument.
Operators whose arguments don't follow the requirements of this
implementation should override this method.

If the function definition says it returns a literal type (numeric,
string, symbol) then it's a fair guess that the function call
returns the same kind of value.

If the function definition says it returns an object type (cube,
dimension, hierarchy, level, member) then we check the first
argument of the function. Suppose that the function definition says
that it returns a hierarchy, and the first argument of the function
happens to be a member. Then it's reasonable to assume that this
function returns a member.