That is correct. When we started discussion about functions, at least my personal idea was that if you specify data type within arguments - you can overload function names (so when you see add(integer, integer) you know which add to use). But then we decided to have argument type embedded into function names, so now we have all string-sequence and decimal-member-of. Type of the argument is indeed redundant now - as the external source is not aware of XACML types and PDP gets everything encoded as strings anyway.. But this will work as long as we do not allow any type conversions ever. If we decide to specify that any functions taking a decimal (numeric) can also take an integer, and promote it to decimal, you may get yourself an ambiguous situation with extensions. If I remember correctly - that was exactly the reason - at some point we have proposed implicit promotion between numeric datatypes.. I think no much harm is done by having DataType embedded. Simplifies some things.. May be more useful in the future.. Daniel.