protected void enhance(FunctionSignature signature) {
signature.setDescription(description.toString());
if (returnValue != null) {
final SequenceType returnType = signature.getReturnType();
final FunctionReturnSequenceType newType =
new FunctionReturnSequenceType(returnType.getPrimaryType(), returnType.getCardinality(), returnValue);
signature.setReturnType(newType);
}
final SequenceType[] args = signature.getArgumentTypes();
for (final SequenceType type : args) {
if (type instanceof FunctionParameterSequenceType) {