@Override
    protected Type typeCheckLocal(Scope<Type> scope) {
        RuleError.context(String.format("while typechecking the invocation of %s", definition.getId()), this, () -> {
            try {
                checkTypeSignature(definition.getArguments(), functionNode.getArguments(), scope);
            } catch (InnerParseError e) {
                throw new RuntimeException(e.getMessage());
            }
        });
        return definition.getReturnType();
    }
@return The arguments to this function
smithy-rules-engine/src/main/java/software/amazon/smithy/rulesengine/language/syntax/expressions/functions/LibraryFunction.java