We need a source generator to generate function definitions and userdata, which will reduce the boiler code and provide optimal implementations.