I finally got back to handling function overloading, and this time I actually did solve it. Part of the solution was detecting "ascending functions" that just overload each other and add one more argument, and then adding a version of the highest function where any arguments that the lowest arguments don't have are passed as Options.
Currently, for these functions, we just use .unwrap() on the option values, meaning that the code will crash if a value is None, which is not actually what we want. This should be fixed.
I finally got back to handling function overloading, and this time I actually did solve it. Part of the solution was detecting "ascending functions" that just overload each other and add one more argument, and then adding a version of the highest function where any arguments that the lowest arguments don't have are passed as Options.
Currently, for these functions, we just use
.unwrap()
on the option values, meaning that the code will crash if a value is None, which is not actually what we want. This should be fixed.