It seems to me that we are not talking about the same "time". XACML does not specify (and can not specify) the content of the context at "compile" time - i.e. policy exists independent of the context. How can it be guaranteed to be typechecked simultaneously (though it certainly can be done, in particular implementations that do have control over context and do not have external function extensions)? Only certain arguments can be always typechecked in advance (such as static value specified in policy, or <apply> elements). This is actually why it is important to NOT have polymorphic functions in condition, so that <apply> element always has a predefined type, even if its arguments are retrieved from context in the runtime.. D;