Type returnType = type(returnTypeAnnotation);
Signature signature = new Signature(name.toLowerCase(), returnType, parameterTypes(method), false, false);
verifyMethodSignature(method, signature.getReturnType(), signature.getArgumentTypes());
FunctionBinder functionBinder = createFunctionBinder(method, scalarFunction.functionBinder());
scalar(signature, methodHandle, scalarFunction.deterministic(), functionBinder, getDescription(method), scalarFunction.hidden());
for (String alias : scalarFunction.alias()) {
scalar(signature.withAlias(alias.toLowerCase()), methodHandle, scalarFunction.deterministic(), functionBinder, getDescription(method), scalarFunction.hidden());
}