The definitely parameter comes into play when the
dimensional information is incomplete. For example, when applied to
TupleType(MemberType(null), MemberType([Store])),
usesDimension([Gender], false) returns true because it
is possible that the expression returns a member of the
[Gender] dimension; but
usesDimension([Gender], true) returns true because it
is possible that the expression returns a member of the
[Gender] dimension.

The definitely parameter comes into play when the
dimensional information is incomplete. For example, when applied to
TupleType(MemberType([Customer]), MemberType([Store])),
usesDimension([Customer].[Gender], false) returns true
because the expression returns a member of one hierarchy of the
[Customer] dimension and that might be a member of the
[Customer].[Gender] hierarchy; but
usesDimension([Customer].[Gender], true) returns false
because might return a member of a different hierarchy, such as
[Customer].[State].