Generic function binding now returns a Functor object for better calling syntax. This can easily be extended to support high level function calling features like default arguments or assigning parameters a value by its name.