There seems to be a clash between:
"Functions invoked with an argument of the wrong type will produce a
type error." (11.2)
vs
"When a operand is coerced to xs:boolean through invoking a function
that takes a xs:boolean argument, the following rules apply: ..."
(11.2.2)
which seems to imply that an arguments to a function that are of type
xsd:boolean are always co-erced and never produce a type error?
If that's the case, I suggest changing 11.2 something like:
Functions invoked with an argument of the wrong type (except
xsd:boolean) will produce a type error.
Functions requiring an argument of type xs:boolean are coerced to
xs:boolean using the EBV rules in section 11.2.2
(Maybe there should be a new sub-section called "Type Errors"?)
Dave